2
我試圖提取選項後傳遞的字符串:如何在bash上的選項之後讀取字符串?
如。
./install -s service1 service2
if [ -z ${1} ] ; then
echo "No option provided, defaulting to (-h)elp."
echo
option="-h"
else
option=$1
fi
我想從參數列表中提取「service1 service2」。如何做到這一點?
你想看看['getopts'(http://wiki.bash-hackers.org/howto/getopts_tutorial)。 –
'[-z $ {1}]'已經很壞了。使用'[-z'$ 1「]' - 大括號沒有任何用處,引號是必不可少的。如果你的腳本已經用'./yourscript「非空-o 1 = 1」'運行,那麼你會有'[-z $ {1}]'返回true,儘管該值根本不是空的。如果你的腳本是用'./yourscript'*''調用的,那麼測試的行爲將取決於當前工作目錄中存在哪些文件名。 –
同樣,即使'[-z $ 1]'*看起來像*它的工作原理,它這樣做的完全不直觀的原因:'[-z]',它解析到,等同於'[-n -z] ',測試字符串'「-z」'是否爲空,並返回一個真值,如果字符串不是**,實際上是空的。 –