基本形
例として、ファイル名をscript_test
として以下の内容で作成。
1行目は実行するスクリプトの指定(shebang, sha-bang, hashbang, pound-bang)。
1 2 3 |
#!/bin/sh echo 'こんにちは' |
ただしこのままでは実行権限がないので、chmod
で実行権限をセットする。
1 2 3 4 5 |
$ ls -l script_test -rw-r--r-- 1 vagrant vagrant 34 6月 9 15:20 script_test $ chmod 755 script_test $ ls -l script_test -rwxr-xr-x 1 vagrant vagrant 34 6月 9 15:20 script_test |
実行する場合、パスを通して入ればファイル名のみで実行できるが、パスを通していなければ絶対パス/相対パスでファイル名を指定する。
1 2 |
$ ./script_test こんにちは |
引数
スクリプト実行時の引数は、変数'1'
、'2'
に格納される。参照する場合は$1
、${1}
など。
1 2 3 |
#!/bin/sh echo "First argument:${1}, Second argument:${2}" |
実行例
1 2 |
$ ./script_test ONE TWO First argument:ONE, Second argument:TWO |
条件分岐
以下は条件分岐の例で、if
とcase
のそれぞれで引数に応じた処理を行わせている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/sh if [ "$1" = "morning" ]; then echo "朝のあいさつ" elif [ "$1" = "night" ]; then echo "夜のあいさつ" else echo "いつもの挨拶" fi case "$1" in morning) echo "おはよう" ;; night) echo "こんばんは" ;; *) echo "こんにちは" ;; esac |
実行例
1 2 3 4 5 6 7 8 9 |
$ ./script_test いつもの挨拶 こんにちは $ ./script_test morning 朝のあいさつ おはよう $ ./script_test night 夜のあいさつ こんばんは |