ZSH シェルスクリプトの基本(個人的なメモ帳)
zshのシェルスクリプトの書き方!
まずは、
任意のディレクトリにtest.shというファイルをvimで作る。
#!usr/bin/zxh read NAME echo "hellow, $NAME"
と記述して保存
つぎに、シェルに以下のコマンドを打ち込んでenterする
zsh test.sh
すると、標準入力に打ち込んだ文字列が$NAMEの部分にあてはめられて、出力される。"Hellow, hogehoge"といった具合に
#!usr/bin/zsh var=1 echo ${var} echo $var
変数宣言で注意すべき点は、=の前後に空白を開けないことです。
それから、変数の名前の前後に{}をつけると、変数の名前の境界線が明白になって、良いです。
次は関数!!
#!usr/bin/zsh function hoge(){ read NAME echo "hellow, $NAME!" } hoge
#!usr/bin/zsh say() { echo "OH!!!, $1 loves $2, really !?/????," } # 関数の呼び出し say taro hanako
入力された数値がゼロかどうかを判定するプログラム
#!usr/bin/zsh judge_zero () { read number if test $number -eq 0; then echo "zero" else echo "not zero" fi } # 関数の呼び出し judge_zero
以下のプログラムも同じ挙動をする
#!usr/bin/zsh judge_zero () { read number if test $number -ne 0; then echo "not zero" else echo "zero" fi } # 関数の呼び出し judge_zero
次は、カレントディレクトリにdir_1 dir_2 ....dir_5というディレクトリを作るプログラム
#!usr/bin/zsh for index in {1..5} do mkdir dir_${index} done
次は、カレントディレクトリの.txtとつくファイルの名前を、すべてmytext(数字).txtに変換するプログラム、exprを使うと盛大にバグり散らしたので、$(())を使うことにしました。こっちの方が計算速度が速いらしい。こちらの記事を参考にしています。
qiita.com
#!usr/bin/zsh index=1 for file in *.txt do mv "$file" "mytxt${index}.txt" index=$((${index} + 1)) done