タグ付けされた質問 「getopts」

30
Bashでコマンドライン引数を解析するにはどうすればよいですか?
たとえば、次の行で呼び出されるスクリプトがあるとします。 ./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile またはこれ: ./myscript -v -f -d -o /fizz/someOtherFile ./foo/bar/someFile このようにを解析するのに受け入れられな方法は何ですか、いずれの場合(または2つの組み合わせ)であること$v、$fおよび $dすべてに設定されるtrueと$outFileと同じになりますか/fizz/someOtherFile?

30
getoptsを使用して長いコマンドラインオプションと短いコマンドラインオプションを処理する
シェルスクリプトを使用して呼び出されるコマンドラインオプションの長い形式と短い形式が必要です。 私はそれgetoptsが使用できることを知っていますが、Perlのように、私はシェルで同じことをすることができませんでした。 これをどのように行うことができるかについてのアイデアは、次のようなオプションを使用できるようにします。 ./shell.sh --copyfile abc.pl /tmp/ ./shell.sh -c abc.pl /tmp/ 上記で、両方のコマンドは私のシェルにとって同じことを意味しますが、を使用してgetopts、これらを実装できませんでしたか?

7
bashでgetoptsを使用する方法の例
myscriptこの方法でファイルを呼び出したい: $ ./myscript -s 45 -p any_string または $ ./myscript -h #should display help $ ./myscript #should display help 私の要件は: getopt ここで入力引数を取得します -s存在することを確認し、エラーを返さない場合 の後の値-sが45または90であることを確認します -p存在し、後に入力文字列があることを確認してください ユーザーが入力した場合、./myscript -hまたはその直後./myscriptにヘルプを表示した場合 私はこれまでにこのコードを試しました: #!/bin/bash while getopts "h:s:" arg; do case $arg in h) echo "usage" ;; s) strength=$OPTARG echo $strength ;; esac done しかし、そのコードではエラーが発生します。バッシュでそれを行う方法とgetopt?
345 bash  shell  getopts 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.