2014-03-13 255 views
0

是什麼意思:bash腳本For循環*

for i in *; do echo *; done 

我在UNIX終端鍵(Mac OS X)

Darwin localhost 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014; 

回答

1

這是一個有點多餘。在這兩個地方,*將擴展到當前目錄中的每個文件。因此,循環將爲每個文件重複一次,每次將i設置爲不同的文件名。然後,主體將只輸出每個文件的名稱,而忽略i。所以如果你在目錄中有10個文件,你會打印所有10個文件名10次。

0

許多特殊符號在unix shell下使用,大約是bash。 *表示當前目錄下按空格分割的所有文件名,您可以使用echo *作爲測試。

〜表示您的主目錄。

!用於歷史命令。

#徵求意見。

用於識別用於使用歷史命令作業

^變量

%$,格式 '^^STRING1 ^字符串2' 來快速替換。

&用於後臺作業

*它通過拆分當前空間目錄下的所有文件名。 ())與$,((command)等價於`command`,$((1 + 2))配合計算數學表達式,如expr命令do。

- 用於舊pwd,您可以使用'cd - '回到您從中切換的目錄。

=用於賦值。

你的代碼

for i in *; do echo *; done 

只是一個for循環打印所有的文件當前目錄下的名字。