シェルスプリクトを実行して、if文がうまく動きなかったときに、解決した方法とチェックすべきポイントを書き残しておく。
CUIの操作を中心に、Unixを簡単に触ってみるテーマの演習だったけど、grep使ったりしたからまあまあなレベル。ただ、サーバの設定で詰んだときは、解決まで何日か掛かったこともあるし、あのぐらいで心折れちゃまだまだだよ皆様。
チェックすべきポイント
シェルスプリクトを書くときに、気をつけなければならないのが、スペースの存在。
普通のプログラミング言語では、見やすさと好みのバランスでスペース置くじゃん。シェルスプリクトではそうもいかなくて、スペースが動作に影響与えていた。
地味に間違いだってことに気づきにくい厄介な存在だった。
スペースに注意した、変数代入
aという変数に、値を代入する記述。
a=’Yaehヤエー’
=(イコール)のまわりにスペースいれない。
シェルスプリクトは行ごとにコマンドが実行されるイメージ。
「{コマンド} {引数}」コマンドにスペース区切りで引数を与えられるみたいな感じ。値の代入は引数でしてるんじゃないよみたいな。おかげで、引数のなかに=(イコール)を含めることができるらしいよ。そう言ったところで、しっくりきてるわけではない。
スペースに注意した、正しいif文の書きかた
[](カッコ)や、=(イコール)のまわりにスペースを入れる。
if [ $keys = “A” ]; then
echo “BYE”
elif [ $keys = “B” ] || [ $keys = “C” ]
echo “Continue”
fi
AのときBYEと表示。Aでなくて、BまたはCのときContinueと表示。
間違っている行を知る
シェルスプリクトは、だいたいの環境ではターミナルで「*****.sh 」と打てば動く。
これを「bash *****.sh 」とすれば、間違っている行は、行数とともに、コマンドが見つかりませんと言った意味の出力がされる。
かっこいいよね?
黒い画面に、文字が流れるように表示されて、めっちゃかっこいいよね。危ない人みたいだよね。
でも、やっぱりかっこいいよね。