問題タブ [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 - 結合されたシェル スクリプト間でオプションをきれいに渡す
myBaseScript.sh
次の署名を持つ(bash)シェルスクリプトがあります:
このスクリプトは、次のようにmyBaseScript.sh
を介してオプションを解析します。getopts
mySuperScript.sh
ここで、 を呼び出すscript を作成して、myBaseScript.sh
オプションをベース スクリプトに転送できるようにします。
[OPTIONS]
で使用されるオプションはどこにありますかmyBaseScript.sh
。では使用されませんmySuperScript.sh
。
このスクリプトは、すべてのディレクトリなどmySuperScript.sh
をクロールし、有効なファイルのリストをコンパイルして に渡します。DIR1
[DIR2]
${FILES[@]}
myBaseScript.sh
今私はこれを持っていますmySuperScript.sh
:
whereは現在のパス${FILES[@]}
にあるファイルのリストです。言い換えれば、これは
ただし、オプションDIR1
の[DIR2]
、 などは対象外です。
私は使用できます
そして as の最初のエントリ$OPTIND
をに渡します。しかし、これは非常に複雑に思えます。さらに、有効なオプションのリストを に複製する必要があり、これは管理上の悪夢です。$allOpts
[OPTIONS]
myBaseScript.sh
myBaseScript.sh
これらのオプションの解析専用の新しいスクリプトを作成することもできます。しかし、それは以前には存在しなかった依存関係を作成するため、少し厄介に思えmyBaseScript.sh
ます...
では、これを行う最もクリーンな方法は何ですか?
bash - 非オプション引数とオプション引数を持つスクリプト
bash スクリプトのオプション パラメータと必須パラメータの両方を処理しようとしています。次のスクリプトがあります。
次のコマンドを使用してスクリプトを実行すると、すべて問題ないように見えます。
しかし、このパラメータを混ぜると:
そうではありません...すべてのパラメーターの組み合わせで機能させるにはどうすればよいですか?
bash - コードの一部をスキップするために bash でオプションを使用する方法
私は bash スクリプトを持っており、スクリプトの呼び出し中に渡されたオプションに基づいて、そのコマンドの一部をスキップできるようにしたい (つまり、実行しない)。
達成したいことを説明するためにif
、基本的に同じことを達成するステートメントを含むスクリプトを作成しました。
スクリプトの呼び出し中に引数が渡されない場合、4 つのecho
ステートメントすべてが実行されます。これらの echo ステートメントのいずれかをスキップする場合はskipLETTER
、最初の引数として次を使用します。
を除くすべての文字A
が印刷されます。機能しますが、多くの制限があります。たとえば、同じ引数 ( $1
) を使用して多くの部分をスキップすることはできません。オプションで同じことを達成したいので、次のように入力できます。
その結果、文字のみB
を印刷しC
ます。
これを使用getopt
またはgetopts
達成できることはわかっていますが、説明したことを達成する簡単な使用例が見つかりません。
linux - RHEL6 getopts doesn't seem to be working
I have a new RHEL6 machine and I'm trying to run a script to generate some output. The script uses getopts which I've never used in the past. This should have worked on other machines but is my first time trying it. Below is the beginning of the script. Is there anything wrong with the syntax? When I try to output the variables it displays nothing:
The echo displays a blank line.
bash - --getopts を使用して単語全体のフラグを取得する
getopts を使用して単語全体のフラグを取得できますか?
次のようなもの:
それらの二重破線の旗を拾おうとしています。