コマンドライン引数の扱いがよく分からなかったので調べるためにサンプルプログラムを作成

コマンドラインからコマンドに引数を渡す際の挙動で、分かり難い状況🤔があったのでそれを調べるためにPythonでサンプルプログラムを作成してみました。

コマンドライン引数の扱いは、通常なら単にスペースで区切られているだけなので特に調べる必要はないんですけどね。ただ、ワイルドカードなどシェル補完がある場合の扱いがどうなるのかはちゃんと調べておきたいところ。それとシングルクォート、ダブルクォートを複数組み合わせて使うような場合とか。

作ったサンプルプログラムは以下に示した通り。
import sys

l = len(sys.argv)

for i in range(l) :
    if i == 0:
        continue
    print("argv{0} = {1}".format(i, sys.argv[i]))
以上をtest01.pyとして保存して次のようにコマンドライン引数をいくつか渡して実行
 $ python3 test01.py test1 test2 test3

すると以下のように1つずつコマンドライン引数が分離されて出力されます。
argv1 = test1
argv2 = test2
argv3 = test3

argv[0]にはスクリプトファイル名が入ってるだけで引数を調べる上では必要ないため、サンプルプログラムではそれは出力されないようにしています

とりあえずこれを元にいろいろ調べてみようかなと思います😉


Amazon プログラミング関連書籍など

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)