2012-08-02 48 views
3

請注意以下事項:爲什麼bash設置「???」到「lib」?

[[email protected] deploy]$ echo ? 
? 
[[email protected] deploy]$ echo ?? 
?? 
[[email protected] deploy]$ echo ??? 
lib 
[[email protected] deploy]$ echo ???? 
???? 

什麼用echo ???是嗎?爲什麼那個「lib」?

我沒有在我的env或.bashrc中看到任何東西,它在機器之間不一致(在我的開發機器上,字符串???保持???,這在我測試它時很有用)。

我可以解決這個問題 - 「???」作爲佔位符值完全是任意的。但現在我很好奇。有人有主意嗎?

謝謝。

回答

7

globs,?代表一個字符(正好 - 只有一個)。所以如果你有一個文件(或目錄),其名稱只有三個字符,???將匹配它。

嘗試touch a; touch bb ; echo ? ??

如果您沒有與圖案相匹配的文件,則圖案按原樣打印,而不是替換。

+0

這就是我今天所學到的。謝謝! – caseyboardman 2012-08-02 14:09:33

1

提示#1:嘗試ls 提示#2:這被稱爲通配符。