コマンドライン引数を取得するには

Go言語 Java PHP Python Ruby Perl sh

Go言語 (golang)

os.Args でコマンドライン引数を取得できる。

os.Args[]string の型を持っていて、1つ目の要素は実行されているバイナリの名前が入っているので、 2つ目以降(os.Args[1]以降)が引数になる。

package main

import "os"
import "fmt"

func main() {
    fmt.Printf("%#v\n", os.Args)
    // コマンドライン引数に aaa bbb を渡した場合の出力例
    // []string{"./test, "aaa", "bbb"}
}

Java

プログラム起動の最初に呼び出されるmainメソッドの引数として渡される。

public static void main(String[] args){
    // args.length が引数の数
    // args[0] が1つ目の引数
    ...;
}

この引数には、実行しているプログラムのファイル名などは含まれておらず、先頭から本当の引数が入っている。

PHP

グローバル変数 $argc, $argv でスクリプトに渡された引数を取得できる。

$argc には引数の数が整数で入っている。PHPスクリプトのファイル名が最初の引数になるので、必ず1以上になる。

$argv には引数が配列で入っている。$argv[0] はPHPスクリプトのファイル名になる。

$argc | PHP Manual
http://www.php.net/manual/ja/reserved.variables.argc.php

$argv | PHP Manual
http://www.php.net/manual/ja/reserved.variables.argv.php

Python

Python2, Python3 とも、sys.argv でスクリプトに渡された引数を取得できる。

sys.argv[0] には実行されているPythonスクリプトのファイル名が入っており、 sys.argv[1] 以降に本当の引数が入っている。

import sys

# 1つ目の引数
arg1 = sys.argv[1]

# 2つ目の引数
arg2 = sys.argv[2]

Ruby

ARGV という定数にスクリプトに渡された引数が配列で入っている。

ARGV には、スクリプトファイル名は含まれておらず、先頭から本当の引数が入っている。

Perl

@ARGV, $ARGV[..] でスクリプトに渡された引数を取得できる。

@ARGV には、スクリプトファイル名は含まれておらず、先頭から本当の引数が入っている。

実行されているPerlスクリプトファイル名は $0 で取得できる。

sh (シェルスクリプト)

$1, $2, $3, … でスクリプトに渡された引数を取得できる。 $*$@ ですべての引数をまとめて取得することもできる。 $# で引数の数を取得できる。

実行されているシェルスクリプトファイル名は $0 で取得できる。

-> シェルスクリプトの特殊な変数

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。