コマンド引数

python

(argv.py)

#!/usr/bin/env python
import sys

print "length: %s" % len(sys.argv)
for i in range(0,len(sys.argv)):
  print "argv[%d]: %s" % (i,sys.argv[i])


実行結果

$ ./argv.py 1 2 3 "4 5 6"
length: 5
argv[0]: ./argv.py
argv[1]: 1
argv[2]: 2
argv[3]: 3
argv[4]: 4 5 6

node

(argv.js)

#!/usr/bin/env node

process.argv.forEach(function(val, index, array){
  console.log(index + ":" + val);
});


実行結果

$ ./argv.js 1 2 3 "4 5 6"
0:node
1:/home/xxx/test/argv.js
2:1
3:2
4:3
5:4 5 6

参照したURL:
http://takuya-1st.hatenablog.jp/entry/2013/05/25/192641
https://nodejs.org/docs/latest/api/process.html#process_process_argv

perl

argv.pl

#!/usr/bin/env perl

$i=0;
print "\$#ARGV : $#ARGV\n";
while(@ARGV){
  $arg = shift;
  print "ARGV[$i]: $arg\n";
  $i++;
}


実行結果

$ ./argv.pl
$#ARGV : -1
$ ./argv.pl 1
$#ARGV : 0
ARGV[0]: 1
$ ./argv.pl 1 2 3 "4 5 6"
$#ARGV : 3
ARGV[0]: 1
ARGV[1]: 2
ARGV[2]: 3
ARGV[3]: 4 5 6

ruby

argv.rb

#!/usr/bin/env ruby

printf("ARGV.size: %d\n", ARGV.size)
ARGV.each_with_index do |arg,i|
  puts "ARGV[#{i}]: #{arg}"
  #printf("ARGV[%d]: %s\n",i,arg)
end


実行結果

$ ./argv.rb
ARGV.size: 0
$ ./argv.rb 1 2 3 "4 5 6"
ARGV.size: 4
ARGV[0]: 1
ARGV[1]: 2
ARGV[2]: 3
ARGV[3]: 4 5 6

gauche

argv.scm

#!/usr/bin/env gosh

(define (main args)
  (format (standard-output-port) "size: ~d\n" (length args))
  (format (standard-output-port) "args: ~s\n" args))


実行結果

$ ./argv.scm 
size: 1
args: ("./argv.scm")
$ ./argv.scm 1 2 3 "4 5 6"
size: 5
args: ("./argv.scm" "1" "2" "3" "4 5 6")

c

argv.c

#include <stdio.h>

main(int argc, char *argv[])
{
  int i;

  printf("argc: %d\n", argc);
  for(i=0;i<argc;i++){
    printf("argv[%d]: %s\n", i, argv[i]);
  }
}


実行結果

$ gcc argv.c
$ ./a.out 1 2 3 "4 5 6"
argc: 5
argv[0]: ./a.out
argv[1]: 1
argv[2]: 2
argv[3]: 3
argv[4]: 4 5 6

bourne shell

argv.sh

#!/bin/sh

for arg in $@
do
  echo $arg
done

実行結果

$ ./argv.sh 1 2 3 "4 5 6"
1
2
3
4
5
6

argv_dq.sh

#!/bin/sh

for arg in "$@"
do
  echo $arg
done

実行結果

$ ./argv_dq.sh 1 2 3 "4 5 6"
1
2
3
4 5 6

参照したURL:
https://qiita.com/Ping/items/57fd75465dfada76e633 ※内容はbash
https://www.ibm.com/support/knowledgecenter/ja/ssw_aix_72/osmanagement/bourne_shell_predefined_spec_vars.html