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" nonempty -o 1 = 1 "'で実行されていた場合、その値がまったく空でないにもかかわらず '[-z $ {1}]'が真を返すでしょう。スクリプトが './yourscript '*''で呼び出された場合、テストの動作は現在の作業ディレクトリに存在するファイル名に依存します。 –
同様に、 '[-z $ 1]' *は動作しているように見えますが、まったく直感的ではありません: '[-z]'は '[-z $ 1]' *文字列 '' -z ''が空であるかどうかをテストし、文字列が実際には空でない場合は真理値を返します。 –