問題タブ [getopts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - Bash: getopts - オプションを無視しますか?
でいくつかのスクリプトを用意してgetopts
ください。次が含まれます。
しかし-オプションを指定して実行すると-x
、次の-c
ようになりました。
削除する:
と、正しく動作します:
私が間違っていることは何ですか?ありがとう。
linux - シェルですべてのオプションを収集する
収集したすべてのオプションを転送して、シェル スクリプトの別のコマンドで使用しようとしています。
たとえば、スクリプトが次のように実行された場合:
マスターで
- getopts は
.:o.:t.:k.:r
(r は現在の実行では使用されていません) - 別のスクリプトを実行し、使用されるすべてのオプションを内部スクリプトに使用する必要があります
すべての ( -o -t -k
) またはその他のオプションの組み合わせエントリを使用したい - どうすればよいですか?
bash - Bash で getopts に受け入れられない引数のリストを生成するにはどうすればよいですか?
オプション文字列 ":a:b" を使用して Bash スクリプトを実行getopts
していて、次のコマンド ライン パラメーターを指定するとします。
「foo」のインスタンスは、オプションの予期される引数ですがa
、オプションb
には予期される引数がありません。ただし、「bar」のインスタンスと「zappo」のインスタンスの両方は、 では受け入れられませんgetopts
。を実行した後getopts
、受け入れられないすべての引数のリストを含む変数をエコーするにはどうすればよいですか? 「bar bar zappo」というリストを作成するにはどうすればよいですか? ありがとう!
便利なコードを次に示します。
bash - Bashでgetoptsを使用して、非オプションの引数をオプションの引数の前に置く方法は?
Bash で getopts を使用してオプションの引数を処理する方法を知っています
しかし、スクリプトで が必要な場合、 arg1 をスキップする./script.sh arg1 [options]
ように指示するにはどうすればよいでしょうか?getopts
ご覧のとおり、引数が最後の位置に配置されている場合、引数を処理できます。getopts
位置引数がオプション引数の前にあることを許可するには、どの「正規表現」が必要ですか?
オプション以外の引数を任意の順序で getopt に許可する方法からの提案は? 引数を並べ替えているようです。
regex - 正規表現と [[ ]] を使用したケース内の OPTARG の解析
そのため、bash スクリプトをセットアップしていて、getopts を使用して特定のフラグへの引数を解析したいと考えています。最小限の例として、フラグ -M があり、y または n を引数として取るスクリプトを考えてみましょう。次のコードを使用する場合:
私は以下を取得します:
ただし、代わりに次のコードを使用すると
私は得る:
なぜ機能しないminimalExample.sh
のですか?
bash - Bash 手動入力と位置パラメーターのシフト
(いきなりですが、この質問は主に、手動で定義された配列に情報を適用getopts
する方法と a を適用する方法に関するものです。shift
getopts
関数のパラメーターを通常の方法で解析しながら、予期しないパラメーターを解析する (複数回処理をループすることによって)いくつかの Bash 関数を開始するための手順を作成しています。getopts
process_arguments()
以下のコードでは、基本的にgetopts
処理を含む小さな関数とshift
、位置パラメータに作用する最終的な操作を見ることができます。このパラメーター解析の全体的な手順は、スクリプトではなく関数process_arguments
を対象としているため、関数に含まれる処理をスクリプトのメインwhile
ループに移動したいと考えています。これには、関数内のプロシージャからの入力および出力情報の変更が含まれます。
処理のための入力情報は、配列getopts
で渡すことができます:getopts
args
ただし、プロシージャの出力をどのように変更できるかはわかりません。現在、位置パラメーターをシフトしてから、位置パラメーターを出力します ( echo "${@}"
)。
それで、質問...
- この
getopts
args
アプローチは、プロシージャに情報を渡す正しい方法ですか? shift
に渡されるパラメーターに を適用するにはどうすればよいgetopts
ですか? また、これらのシフトされたパラメーターをスクリプトの残りの処理に出力するにはどうすればよいですか?
ご協力いただきありがとうございます。他のガイダンスを歓迎します。全体的な目標は、関数を削除し、process_arguments()
その機能をメインの ``while``` ループに組み込むことです。