シェルスクリプト覚え書き シェル変数と引数 編

変数関連

  • 変数の定義

file=/media/usr-name/
変数名に使えるのは アルファベット、数字、アンダースコアのみ

  • 変数の参照

変数の値を参照する際には、変数名の前に$をつける。

echo $file  
/media/user-name/

コマンド置換

コマンド置換を利用することで、コマンドの吐いた標準出力を文字列として取得することが出来る。
コマンド置換:$(<コマンド名>)
例 シェル変数filenameに、現在時刻を代入する

$ filename=$(date|tr ' ' '_')
$ echo $filename
Mon_Apr__3_14:30:20_JST_2017

コマンドライン引数を用いる

位置パラメータというシェル変数を用いることで、シェルスクリプトコマンドライン引数を導入できる

  • 位置パラメータ
    $ ./hoge.sh aaa bbb と引数付きでシェルスクリプトを実行した際、
    “./hoge.sh"は$0 "aaa"は$1 "bbb"は$2というシェル変数に格納される
    引数の個数(この場合は2つ)は$#、引数全体(この場合はaaa bbb)は$@というシェル変数に格納される # 具体例
    位置パラメータを表示するシェルスクリプト param.sh
#!/bin/bash
echo $0
echo $1
echo $2
echo $3
echo $#
echo $@

実行

$ sudo chmod +x param.sh
$ param.sh aaa bbb  
./param.sh # $0
aaa        # $1
bbb        # $2
           # $3(無い)
2          # $#(引数の数)
aaa bbb    # $@(すべての引数)