問題タブ [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 - getopts がコマンド ライン オプションを解析しない
私は bash バージョン 4.2 を実行しており、組み込みコマンドgetopts
でコマンド ライン パラメータを解析しようとしています。
しかし、getopts はそれを正しく解析していないようです-s
。最初のパラメーターでなければ、解析されません。
-s
解析されません:
これは解析されます
スクリプトは次のとおりです。
linux - bash getopts が引数を認識できない
getopts
以下のように引数を取得するスクリプトがあります
別のスクリプトで解析されてスクリプトに渡される引数を受け取り、getopts
単一のエントリに対しては正常に機能します。12345,-d somedesc -l somelabel
ただし、複数のエントリを受け取り、さらに引数を分割するために and を使用している場合、12345,-d somedesc -l somelabel:6789, -d anotherdesc -l anotherlabel
OPTIONSが正しく渡されても がトリガーされません。loop
awk
getopts
getopts
OPTIONS を認識できない理由はありますか?
bash - 値のリストを使用してフラグを解析する
引数の解析を含む bash スクリプトを作成しています。使用法は次のとおりです。
を使用して、それぞれの値とgetopts
を解析-a
して取得することができます。ユーザーが最後の引数として配置した場合にのみ、のすべての値を含むリストを取得して作成することもできます。-b
ARG_1
ARG_2
-c
-c
LIST_OF_ARGS...
-c
しかし、ユーザーに最後のフラグとして挿入を強制したくありません。たとえば、スクリプトを次のように呼び出すことができれば素晴らしいでしょう。
これが私の現在のコードです:
bash - getopts を使用する場合、オプション解析コードを bash 関数内で共有するにはどうすればよいですか?
Bash関数でこのオプション解析コードをクリーンアップするにはどうすればよいですか? 印刷用に単純な「-h」フラグが必要な多くの関数にコピーアンドペーストされます。むしろ、論理的に同等の汎用ルーチンが必要です
例えば:
関数は、自分の dot-bashrc ファイルで「ソース化」されます。
コードは次のようになります (注: 一部の関数はフラグを介してオプションを取ります)。
通常は、node-commander や node-optimist などを使用して、スクリプト作成のニーズに合わせて JavaScript (またはおそらく Python) でスクリプトを記述しますが、今回は Bash を機能させようとしています。しかし、バッシュは私をバッシングしています。
bash - オプションのフラグの $OPTARG を読んでいますか?
スクリプトで必須フラグとオプション フラグの両方を受け入れられるようにしたいと考えています。これが私がこれまでに持っているものです。
ただし、次の出力:
...これを出力します:
ご覧のとおり、必須フラグの場合とは異なり、オプションのフラグは $OPTARG で引数を取得していません。きちんとした ":)" エラー処理を取り除くことなく、オプションのフラグで $OPTARG を読み取る方法はありますか?
=======================================
編集:以下のギルバートのアドバイスに従って終了しました。これが私がしたことです:
どうもありがとう、みんな。これはこれまでのところ完全に機能します。
bash - 関数で呼び出された getopts がフラグを取得しない
から呼び出す次のスクリプトがあります.bash_profile
。
私が実行するとき
フラグは完全に無視されます。「すべてのローカル変更を上書きしています!」というメッセージは表示されません。私はどこかで何かを逃しましたか?
更新:機能しますが、スクリプトを初めて実行するときだけです。2 回目以降、フラグは無視されます。
linux - UNIX の基本的な getopt のトラブル
最近 UNIX を使い始めたばかりで、getopts の実装に問題があります。
以下の関数は、ファイルを見つけてごみ箱に削除します。移動後にメッセージを表示する -i を指定して getopts を使用しようとしています。構文は正常に機能しますが、getotps コマンドで while ループを実装すると機能しなくなります。
誰でも有益なアドバイスをいただけますか?
bash - bashスクリプトで引数を解析する最良の方法
だから私はgetopts、getoptなどについて読んでいますが、私の問題に対する正確な解決策は見つかりませんでした。
私のスクリプトの使用法の基本的な考え方は次のとおりです。
-d が渡された場合、TEXT は必要ありません。TEXT は通常、テキストの段落であることに注意してください。
私の主な問題は、getopts がフラグの解析を終了すると、TEXT パラメータの位置を知る方法がないことです。ただし、ユーザーが失敗して次のようなことをした場合、 TEXT が最後の引数であると想定できます。
その場合、プログラムは使用法が正しくないことを認識しません。
私が最も近いのは、 getopt と IFS を使用して実行することです
唯一の問題は、TEXT がテキストの長い段落である可能性があり、このメソッドはスペースのためにテキストのすべての単語を分割することです。
私の最善の策は、正規表現を使用して使用法が正しく形成されていることを確認してから、getopts で引数を抽出することだと考えていますが、より簡単な解決策があればいいと思います
bash - getopts で引数なしのデフォルト ケースを変更する - bash
getopts を使用し、特定のフラグに引数を指定しない場合は常に、次のメッセージが表示されます。"option requires an argument -- d"
このメッセージを削除し、ユーザーがread
コマンドを使用してオプションを再入力できるようにしたいと考えています。
getopts での私の場合は次のとおりです。
bash - Bash: getopts - オプションを無視しますか?
でいくつかのスクリプトを用意してgetopts
ください。次が含まれます。
しかし-オプションを指定して実行すると-x
、次の-c
ようになりました。
削除する:
と、正しく動作します:
私が間違っていることは何ですか?ありがとう。