コマンドラインから引数を取得するにはprocess.argv
を使用する。
test.js
console.log(process.argv)
出力結果
$ node playground/test.js a a a a a a a
[
'/usr/local/bin/node',
'/Users/yutakaf/Desktop/git/weather_app/playground/test.js',
'a',
'a',
'a',
'a',
'a',
'a',
'a'
]
process.argv0の元の値にアクセスするargv[0]必要があるかどうかを確認します。
2番目の要素は、実行中のJavaScriptファイルへのパスになります。
残りの要素は、追加のコマンドライン引数になります。
process.argv[2]から引数になることに注意しましょう。
環境
$ node -v
v12.18.4
JavaScript ES6での書き方ということが言いたかった。
引数をたくさん取得する場合
引数が可変する場合には下記のように要素を取得できる。
forなら下記のように、
test.js
for(vari=0;i<process.argv.length;i++){console.log(`argv[${i}] = ${process.argv[i]}`);}
mapを使うともっとスマートに書ける。
test.js
process.argv.map((v,i)=>console.log(`argv[${i}] = ${v}`))
出力結果
$ node playground/test.js a a a a a a a
argv[0] = /usr/local/bin/node
argv[1] = /Users/yutakaf/Desktop/git/weather_app/playground/test.js
argv[2] = a
argv[3] = a
argv[4] = a
argv[5] = a
argv[6] = a
argv[7] = a
argv[8] = a
コメント
作業中に思い出せなかったこと、ちゃんと仕様を調べようと思ったのでまとめてみた。
References
process.argvのドキュメント
Node.jsでコマンドライン引数を取得する