2013-12-19 78 views

回答

3

在當前目錄中有一個名爲「1」的文件和一個名爲「2」的文件。

在之前,shell將對全局模式執行模式匹配,將結果交給echo[#10]是包含,和的字符類。

http://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching

如果你想字面[#10],等等,你必須放在引號,單人或雙人無所謂。

+0

+1我相信這就是原因。但它可以是文件或目錄或鏈接名爲'1,2' – anubhava

+0

這是正確的。我有這樣的文件=)你會怎麼做以下?:'回聲「錯誤:東西我們錯了。錯誤代碼[#12]」'? –

+1

'echo「錯誤:錯誤代碼[#12]」'將按原樣處理,因爲它在引號中,否則您可以使用:'echo'錯誤:錯誤的東西。錯誤代碼[#12]'' – anubhava

2

(來回答你的最後一個註釋的問題)

您可以使用printf(1)命令:

printf "Error: %s went wrong. Error code [#%d]\n" "something" $[10+2] 

$[10+2]在這裏展示如何做算術殼。您可以用例如"something"代替。 $somevariable ...

+0

用於printf,但爲什麼算術? –