コマンドライン引数を解析するために、プログラミング言語ごとに異なるコマンドライン引数解析方法が使用されます。
プログラミング言語
C
Cはargvコマンドライン引数を処理するために使用されます。[1] [2]
C引数解析 の例は次のようになります。
#include <stdio.h> int main ( int argc , char * argv []) { int count ; for ( count = 0 ; count < argc ; count ++ ) puts ( argv [ count ] ); }
C には、 getoptおよび getopt_long と呼ばれる関数もあります。
C#
C#引数解析 の例は次のようになります。
クラスProgram { static void Main ( string [ ] args ) { foreach ( var arg in args ) Console.WriteLine ( arg ) ; } }
ジャワ
Java引数解析 の例は次のようになります。
パブリッククラスEcho { public static void main ( String [ ] args ) { for ( String s : args ) { System.out.println ( s ) ; } } }
コトリン
Kotlinで引数を出力する方法はいくつかある: [3]
fun main ( args : Array < String > ) = println ( args . joinToString ())
fun main ( args : Array < String > ) = println ( args . contentToString ())
fun main ( args : Array < String > ) { for ( arg in args ) println ( arg ) }
パール
Perl はを使用します@ARGV。
$arg を@ARGVで繰り返し実行し、$ argを出力します。
FT
または
foreach $argnum ( 0 .. $#ARGV ) ST { print $ARGV [ $argnum ]; }
AWK
AWKも使用しますARGV。
BEGIN {
for ( i = 0 ; i < ARGC ; i ++ )
{
print ARGV [ i ]
}
}
PHP の
PHPはargc引数の数として、また引数の値を含む配列argvとして使用します。 [4] [5]形式のコマンドライン引数から配列を作成するには、次のようにします。
-foo:bar
$args = parseArgs ( $argv );
echo getArg ( $args , "foo" );
関数 parseArgs (配列 $args )
{
foreach ( $args as $arg ) {
$tmp = explore ( ":" , $arg , 2 );
if ( $arg [ 0 ] === "-" ) {
$args [ substr ( $tmp [ 0 ], 1 )] = $tmp [ 1 ];
}
}
return $args ;
}
関数 getArg (配列 $args 、 文字列 $arg )
{
if ( isset ( $args [ $arg ])) {
return $args [ $arg ];
}
return false ;
}
PHPでも使用できますgetopt()。[6]
パイソン
Python では、例えばを使用しますsys.argv:
sys
をインポートしてargを sysにインポートします。argv : argを印刷します。
argparsePythonには、コマンドライン引数を解析するための標準ライブラリと呼ばれるモジュールもあります。 [7]
ラケット
Racketはパラメータを使用しcurrent-command-line-arguments、これらの引数を解析するためのracket/cmdline[8]ライブラリを提供します。例:
#ラングラケット
( racket/cmdlineが必要)
(笑顔を定義しますか? (パラメータ#tを作成します)) (鼻を定義しますか? (パラメータ#falseを作成します)) (目を定義します(パラメータ":"を作成します))
(コマンドライン#:program "emoticon"
#:once-any ; 次の 2 つは相互に排他的です[( "-s" "--smile" ) "smile mode" ( smile? #true )] [( "-f" "--frown" ) "frown mode" ( smile? #false )]
#:once-each
[( "-n" "--nose" ) "鼻を追加する" ( nose? #true )] [( "-e" "--eyes" ) char "目には <char> を使用する" ( eyes char )])
( printf "~a~a~a \n " (目) ( if (鼻? ) "-" "" ) ( if (笑顔? ) ")" "(" ))
ライブラリは、長いフラグと短いフラグを解析し、引数を処理し、短いフラグの組み合わせを許可し、次-hの処理を--help自動的に行います。
$ラケット /tmp/c -nfe 8 8-(
レックス
Rexx ではarg、例えば次のよう
に使用します。
i = 1 を実行してwords ( arg ( 1 ))を実行し、 word ( arg ( 1 )、 i )を実行します。
さび
引数は にありますenv::args()。[9]
std :: envを使用します。
fn main () { let args : Vec < String > = env :: args (). collect ();
クエリ= &引数[ 1 ];ファイルパス= &引数[ 2 ] ;
println! ( "{} を検索しています" , query ); println! ( "ファイル {} 内" , file_path ); }
JavaScript
Node.js
Node.js用に書かれたJavaScriptプログラムはグローバル変数を使用しますprocess.argv。[10]
//
argv.js console.log ( process.argv ) ;
$ node argv.js 1 2 3 4 5 [ 'node'、
'/home/avian/argvdemo/argv.js'、
'1'、
'2'、
' 3
'、
'4'、
'5' ]
Node.jsプログラムは、指定されたファイルでインタープリタノードインタープリタを実行することによって呼び出されるため、最初の2つの引数はnodeとJavaScriptソースファイルの名前になります。 からサブ配列をスライスして残りの引数を抽出すると便利なことがよくありますprocess.argv。[11]
// process - args.js console.log ( process.argv.slice ( 2 ) ) ;
$ node process-args.js 1 2 = 3 4
[ '1' ,
'2=3' ,
'4' ]
パン
Bunの使用Bun.argvと機能のために書かれたJavaScript util.parseArgs。[12]
console.log ( Bun.argv ) ;
デノ
Deno用に書かれたJavaScriptはDeno.args[13]と関数[14]を使用するparseArgs。
コンソール。ログ( Deno . args );
参考文献
- ^ 「The C Book — Arguments to main」 。Publications.gbdirect.co.uk 。2010年 5 月 31 日閲覧。
- ^ C引数とオプションの解析例
- ^ 「Kotlin: 基本構文」。2022年5月13日閲覧。
- ^ 「PHP マニュアル」。PHP。2010年 5 月 31 日閲覧。
- ^ ウィキブック:PHP プログラミング/CLI
- ^ 「PHP: Getopt - マニュアル」.
- ^ 「argparse — コマンドラインオプション、引数、サブコマンドのパーサー」。Python v3.10.0 ドキュメント。2012年11月1日時点のオリジナルよりアーカイブ。2021年10月15日閲覧。
- ^ Racket リファレンスマニュアル、コマンドライン解析
- ^ 「コマンドライン引数の受け入れ - Rustプログラミング言語」. doc.rust-lang.org . 2022年12月22日閲覧。
- ^ "process.argv". Node.js v10.16.3 ドキュメント. 2019 年10 月 3 日閲覧。
- ^ 「コマンドライン引数を解析する方法」。Node.js Foundation ドキュメント。2019年10 月 3 日閲覧。
- ^ 「コマンドライン引数の解析 | Bun の例」。Bun。
- ^ “Deno.args”. docs.deno.com。
- ^ 「parse-args からの parseArgs - @std/cli - JSR」。jsr.io。
