bashでgetoptsを使用してコマンドライン引数を処理しようとしています。要件の1つは、任意の数のオプション引数(引用符を使用しない)の処理です。getopts(bash)を使用した複数のオプション引数
第一例(唯一の第一引数をつかむ)
madcap:~/projects$ ./getoptz.sh -s a b c
-s was triggered
Argument: a
第二例(私はそれがこのように振る舞うしたいが、引数「
madcap:~/projects$ ./getoptz.sh -s "a b c"
-s was triggered
Argument: a b c
を引用することなく、への道があります?
#!/bin/bash
while getopts ":s:" opt; do
case $opt in
s) echo "-s was triggered" >&2
args="$OPTARG"
echo "Argument: $args"
;;
\?) echo "Invalid option: -$OPTARG" >&2
;;
:) echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done
:これは
ここで私が今持っているコードですん
これが役立つことがあります。http://stackoverflow.com/a/7530327/1983854 – fedorqui
詳細が必要です。 'getoptz.sh -s a -b c'が与えられたら、どんな振る舞いをしたいですか? '-b'は' -s'の引数ですか、 '-'は新しいオプションを示していますか? –
[オプションの異なるさまざまなプログラムをそれぞれのオプションに対して呼び出す](http://stackoverflow.com/questions/15442950/)に関連するが、これに限定されない。一般的に、標準コマンドインタフェースのガイドライン(POSIXユーティリティの規約)を使用することが最善です(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html) –