我是新來痛擊腳本和嘗試寫以下簡單巴什腳本檢查條件
function wait_some {
if [ -z $1 ];
echo some_string
then if ! [[ $1 =~ ^[0-9]+([.][0-9]+)?$ ]];
then
echo "$1 is not a number"
exit 2
else echo "it's a number"
fi
fi
}
wait_some 2.2 //prints some_string and then it's a number
而這按預期工作。
但如果我刪除回聲「一些字符串」不打印輸出:
function wait_some {
if [ -z $1 ];
then if ! [[ $1 =~ ^[0-9]+([.][0-9]+)?$ ]];
then
echo "$1 is not a number"
exit 2
else echo "it's a number"
fi
fi
}
wait_some 2.2 //prints nothing
爲什麼爲什麼刪除echo some_string
狀態檢查打破了功能之後
它的工作原理,謝謝。 – user3663882
請注意,'-z'測試甚至沒有必要;你可以試着將空字符串與正則表達式匹配得很好。空字符串不是數字:) – chepner
@chepner:感謝您的評論。除了不正確的語法之外,不想修改作者的代碼。很多改進都是可能的。 :) – Inian