「bash」変数への代入、if 文、for 文、関数呼び出しメモ
bash で変数への代入、if 文、for 文、関数呼び出し等々するシェルスクリプトを書いてみました。
Web を検索するたくさんいい情報が出ている内容ですが、さっと取り出せるメモという感じです。
以下が今回作ったシェルスクリプトです。
case で引数を判定して処理を分ける感じにしています。
#!/bin/bash # 呼び出し用の関数 testfunc() { #function testfunc() { でも OK echo "hello $1" } case $1 in # 変数に代入して、変数を出力する "echo" ) var="echo test" echo $var #echo "$var" でも OK echo '$var' #シングルクォーテーションだと $var がそのまま出力される ;; # if の比較 "if" ) a=1 b=1 c=2 if [ $a -eq $b ]; then echo "a = b" fi if [ $a -eq $c ]; then echo "a = c" elif [ $a -lt $c ]; then echo "a < c" else echo "else" fi ;; # for での繰り返し処理 "for" ) for i in a b c do echo $i done for i in {0..3} #for i in $(seq 0 3) とも書ける do echo $i done ;; # ファイル、ディレクトリの存在判定 "filedir" ) if [ ! -e ./aaa ]; then echo abcde > aaa fi if [ ! -e ./bbb ]; then mkdir bbb fi if [ -f ./aaa ]; then echo aaa is file fi if [ -d ./bbb ]; then echo bbb is directory fi ;; # hello 関数を呼び出す "func" ) testfunc hoge ;; esac
実行は以下の感じで ( chmod で実行権限を付与しておく )
[root@centos62 bash]# ./test.sh echo echo test $var [root@centos62 bash]# ./test.sh if a = b a < c
非常に簡単ですが、以上になります。