問題タブ [getopt-long]
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.
perl - GetOpt::Long::GetOptions で文字列を解析するにはどうすればよいですか?
(Read-Eval-Print-Loop プログラムを使用して) 可能なコマンド ライン引数を含む文字列があり、Getopt::Long に渡されるときにコマンド ライン引数と同様に解析されるようにします。
詳しく説明するには:
私は文字列を持っています
新しいオプションを簡単に追加できるように、GetOptions で解析する必要があります。
考えられる回避策の 1 つは、文字列を空白で分割し、@ARGV を新しい配列に置き換えてから、GetOptions を呼び出すことです。何かのようなもの ...
良い/より良い方法はありますか?
perl - Perl プログラムでハードコードされた構成をオーバーライドするにはどうすればよいですか?
使用するディレクトリとファイルの上部に変数を設定する Perl スクリプトがあります。また、コマンドライン引数としていくつかの変数を設定する必要があります。例:
これは、開発、テスト、および本番環境で正常に機能します。ただし、開発とテストのために、(デバッガーに入ることなく) 特定の変数を簡単にオーバーライドできるようにしようとしていました。(たとえば、input_file = "/tmp/my_input_file.dat" に設定したい場合)。私の考えは、GetOptions 関数を使用してこれを処理することでした。次のようなものです。
GetOptions は 1 回しか呼び出せません (私の知る限り)。最初のスニピットの最初の 4 つの引数は必須で、すぐ上の最後の 7 つの引数はオプションです。理想的な状況は、最初のコード スニピットのようにデフォルトを設定し、コマンド ラインで引数が渡された場合に設定された設定を何らかの方法で上書きすることだと思います。すべてのオプションをハッシュに保存し、ハッシュにエントリが存在しない限り、各変数をデフォルト値で設定するときにそのハッシュを使用することを考えましたが、それは多くの追加ロジックを追加するようです. スクリプトの 2 つの異なる場所で GetOptions を呼び出す方法はありますか?
それが意味をなすかどうかはわかりません。
ありがとう!
perl - Perl の Getopt::Long は、事前に定義していない引数を解析できますか?
Perl の Getopt::Long の使い方は知っていますが、明示的に定義されていない "--key=value" ペアを受け入れてハッシュに貼り付けるように構成する方法がわかりません。言い換えれば、ユーザーがどのようなオプションを必要としているかは前もってわからないので、それらすべてを定義する方法はありませんが、それらすべてを解析できるようにしたいと考えています。
提案?事前に感謝します。
c++ - optarg を C++ 文字列オブジェクトとして取得する
C++ アプリケーションでコマンド ライン引数を処理するために getopt_long を使用しています。例はすべてprintf("Username: %s\n", optarg)
、処理例のようなものを示しています。これは例を示すのに最適ですが、後で使用するために値を実際に保存できるようにしたいと考えています。コードの残りの部分の多くはstring
代わりにオブジェクトを使用しchar*
ているため、optarg の内容を文字列にキャスト/コピー/何でもする必要があります。
上記のコードはコンパイルされますが、実行時にIllegal instruction
printf を使用して bar の値を出力しようとするとエラーが発生します (cout では問題なく動作するようです)。
私はコマンドラインのデバッグについて十分な知識がなく、不正な命令が何であるかをより深く掘り下げることができません。私は valgrind を実行していましたが、このエラーが原因で大量のメモリ エラーが発生したため、このエラーの原因を正確に特定することが困難でした。
perl - Perl の Getopt::Long でパラメータ名のリテラル = を処理しないようにするにはどうすればよいですか?
Perl プログラム「transfer.pl」を作成しました。入力パラメーターはハッシュ値です (キーと値は文字列です)。コード セグメントは次のとおりです。
Windowsシステムを使用しました。コマンドラインで、次のように入力しました。
perl tranfer.pl --transfer "table = %s"="[TableName=%s]"
table = %s
キーがで値がであることを願っていますが[TableName=%s]
、Getopt::Long は常に最初のものを見つけるようです。=
そのため、キーはtable
であり、値は%s=[TableName=%s]
です。
入力したとき
perl tranfer.pl --transfer "テーブル \= %s"="[テーブル名\=%s]"
キーはtable \
、値は%s=[TableName\=%s]
です。
文字列値で「=」をバイパスして、コードを期待どおりに動作させる方法を知りたいですか?
どうもありがとうございました!
python - オプションのパラメーターをオプションに処理するようにpythonのgetoptを説得する方法はありますか?
Pythonの(私が思うに)のドキュメントによるとgetopt
、オプションフィールドはgetopt()
関数として動作するはずです。ただし、コードでオプションのパラメーターを有効にできないようです。
結果:
linux - getopt_long と getopt_long_only の比較
適切な Linux/unix スタイルのアプリケーションを実行するには、何が最良の選択ですか (たとえば、afaik lsは getopt_long を使用しますが、たとえばffmpeg getopt_long_only を使用します)。どれをお勧めしますか?
乾杯、
perl - 引数の値が 0 の場合、Perl プログラムがヘルプ メッセージを出力するのはなぜですか?
私がこれを行う場合:
次のようにプログラムを呼び出します。
常に usage() が呼び出されるため、明らかに 0 は整数値として認識されません。整数値 AND 0 を受け入れるにはどうすればよいですか?
perl - -r= を処理するにはどうすればよいですかPerl の Getopt::Long で?
Getopt::Longを使用して、Perl でコマンド ライン オプションを解析しています。短いコマンド ( )にはプレフィックス-
(1 つのダッシュ)を使用し、長いコマンド (例: ) には (2つのダッシュ) を使用する必要があります。-s
--
--input=file
私の問題は、特別なオプション ( -r=<pattern>
) が 1 つあるため、引数の要件に対して長いオプションですが、他の長いオプションのように-
二重ダッシュ ( ) ではなく 1 つのダッシュ ( ) 接頭辞を付ける必要があることです。これらを受け入れるようにGetopt::Long--
をセットアップすることは可能ですか?