bash
スクリプトを使用case
しshift
て、位置パラメーターのリストをウォークスルーし、フラグとオプションを引数で解析し、それらを検出してそれらを削除し、構文解析後にそれらを削除して、裸の引数のみを残して、後で残りの残りで処理されるのを見た覚えがあります。脚本。
たとえば、のコマンドラインの解析では、cp -R file1 -t /mybackup file2 -f
最初にパラメータを確認し、ユーザーがによってディレクトリに降り-R
、ターゲットを指定して-t /mybackup
コピーを強制し-f
、それらをパラメータのリストから削除することを要求したことを認識します。file1 file2
残りの引数として処理するプログラム。
しかし、私はいつでも目にしたスクリプトを覚えている/見つけることができないようです。それができるようになりたいのです。私はさまざまなサイトをグーグルで検索して、調べた関連ページのリストを追加しています。
このWebサイトの質問では、「順序に依存しないオプション」について具体的に質問しましたが、単一の回答とそれがダッピングされた質問の回答のどちらも、オプションが通常の引数と混合されている上記のようなケースを考慮していません。個人が順序に依存しないオプションについて具体的に言及する理由。
以降bash
に建てられた-S」getopts
最初の非オプションの引数で停止するようだ、解決策として十分であるとは思えません。これが、Wooledge BashFAQのページ(下記を参照)が引数を再配置する方法を説明する理由です。しかし、引数リストが非常に長い場合に備えて、複数の配列を作成しないようにしたいと思います。
以来shift
パラメータリストの真ん中オフ個々の引数をポップサポートしていない、私は私が求めています何を実装するための簡単な方法は何かわかりません。
まったく新しい配列を作成せずに、パラメーターリストの途中から引数を削除する解決策があるかどうか知りたいです。
私がすでに見たページ:
- http://mywiki.wooledge.org/ComplexOptionParsing#Rearranging_arguments
- http://mywiki.wooledge.org/BashFAQ/035
- bashシェルスクリプトでgetoptsを使用して長いコマンドラインオプションと短いコマンドラインオプションを取得する
- http://wiki.bash-hackers.org/scripting/posparams
- http://wiki.bash-hackers.org/howto/getopts_tutorial
- $ @の引数のbash引数のケース
- bashスクリプトで順序に依存しないオプションを実装する標準的な方法は何ですか?
- シェルスクリプトでスイッチをどのように処理しますか?