如果在bash 4中有條件的話,可以在裏面分配變量嗎?即。在下面的函數中我想分配執行cmd的輸出來輸出並檢查它是否是一個空字符串 - 都在測試條件內。該函數應輸出如果在bash 4中有條件,那麼在裏面分配變量?
「命令返回:酒吧」
myfunc() {
local cmd="echo bar"
local output=
while [[ -z output=`$cmd` ]];
do
#cmd is failing so far, wait and try again
sleep 5
done
# great success
echo "command returned: $output"
}
爲什麼上面?
我更喜歡用'set -e'運行腳本 - 這會導致腳本終止於不在if/loop條件中的第一個非0返回/退出代碼。
考慮到這一點,想象一下,cmd是一個不穩定的命令,可能會隨時退出> 1,我想繼續調用它,直到成功並獲得一些輸出。
你的代碼相當於'if [[!! -z output = bar]]'。 – 2012-02-03 21:22:55
你試過了嗎?爲什麼你想首先做到這一點? – 2012-02-03 21:24:34
以上是一個微不足道的例子 - 我將澄清 – Nikita 2012-02-03 21:26:32