2014-06-29 114 views
2

我正在OS X上編寫一個shell腳本,我不知道如何重用返回的值並將它們保存爲變量。例如,如果我輸入命令「混帳子模塊的foreach --recursive」終端裏面我得到印刷3行,像這樣:在OS X終端中使用命令的信息/結果

Entering 'path/of/submodule/1' 
Entering 'path/of/submodule/2' 
Entering 'path/of/submodule/3' 

現在我想用這些路徑絃樂我的腳本中進一步處理。所以我需要將它們保存在可能是Array的東西中....?這是我第一次嘗試shell腳本,所以任何建議都非常受歡迎。

回答

0

的典型方法是喂標準輸出與while循環:

git submodule foreach --recursive \ 
    | while read line ; do 
     echo Processing $line 
     ... 
    done 

要嚴格回答你的問題,你也可以在一個命令的結果與分配給一個變量

a=$(git submodule foreach --recursive) 

如果你想a是一個陣列,使用

a=($(git submodule foreach --recursive)) 

但是bash傾向於拆分因此在包含空格的字符串上使用該語法時,需要小心,並且您希望在換行符處進行拆分。

如果您的目標只是一次處理輸出一行,while是最直接的。