複数の引数を持つコマンドを実行しようとしています。コマンド構文は次のようになります。
./foo -d directory -f file -v version app1 app2 app3 (this situation works)
ただし、-v version
後に置くと、フラグapp1,2,3
ではなく引数として渡されます。複数の引数を使用してフラグをどちらの位置でも機能させる-v
にはどうすればよいですか?-v
while getopts ":d:f:v:" OPTION
do
case $OPTION in
d ) IFS=","; directory=$OPTARG;;
f ) file=$OPTARG;;
v ) version=$OPTARG;;
* ) echo && usage;;
/? ) echo && usage;;
esac
done
shift $(( OPTIND - 1 ))
for dir in ${dirList} do
for f in ${file} ; do
echo $dir/$file
done
done
applications=$@