有人可以解釋爲什麼這些echo
命令不輸出[#10]
等?爲什麼「echo [#10]」等於1?
# echo [#10]
1
# echo [#11]
1
# echo [#12]
1 2
# echo [#13]
1
# echo [#14]
1
有人可以解釋爲什麼這些echo
命令不輸出[#10]
等?爲什麼「echo [#10]」等於1?
# echo [#10]
1
# echo [#11]
1
# echo [#12]
1 2
# echo [#13]
1
# echo [#14]
1
在當前目錄中有一個名爲「1」的文件和一個名爲「2」的文件。
在之前,shell將對全局模式執行模式匹配,將結果交給echo
。 [#10]
是包含#,和的字符類。
見http://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching
如果你想字面[#10]
,等等,你必須放在引號,單人或雙人無所謂。
(來回答你的最後一個註釋的問題)
您可以使用printf(1)命令:
printf "Error: %s went wrong. Error code [#%d]\n" "something" $[10+2]
的$[10+2]
在這裏展示如何做算術殼。您可以用例如"something"
代替。 $somevariable
...
用於printf,但爲什麼算術? –
+1我相信這就是原因。但它可以是文件或目錄或鏈接名爲'1,2' – anubhava
這是正確的。我有這樣的文件=)你會怎麼做以下?:'回聲「錯誤:東西我們錯了。錯誤代碼[#12]」'? –
'echo「錯誤:錯誤代碼[#12]」'將按原樣處理,因爲它在引號中,否則您可以使用:'echo'錯誤:錯誤的東西。錯誤代碼[#12]'' – anubhava