2016-05-12 126 views
1

我想將shell命令的輸出分配給變量。將Shell命令的輸出分配給變量

如果我直接回應的命令,代碼將執行正確

for ((i=0; i<${#result[@]}; i++)); do 
     echo ${result[$i]} | awk '{print $1}' 
     done 

但是,如果我把它分配給變量

size=`${result[$i]} | awk '{print $1}'` 
    echo $size 

或者

size=$(${result[$i]} | awk '{print $1}') 
echo $size 

他們沒有工作。

任何人都可以給我一些解決它的建議!

回答

4

你錯過了echo

size=$(echo ${result[$i]} | awk '{print $1}') 

這裏的echo作爲輸入傳遞給awk

輸出的$()或反引號只是執行命令,並將其分配給一個變量,所以當你只寫

${result[$i]} | awk '{print $1}' 

它不會給你任何東西,因爲沒有任何東西通過作爲awk命令的輸入。

+1

非常感謝您的協助。我在這裏呆了4個小時...... 感謝您提供這種解決方案的詳細介紹。 – Ilikeperl

+1

我想再次感謝您的介紹 – Ilikeperl

+1

@Ilikeperl歡迎您:) – nu11p01n73R

相關問題