輝く僕らの学費

外の空気が大好き、そこそこ忙しい理系の男子大学生のぶちおです。

Linux

シェルスプリクトを書くときにやってしまったミス

投稿日:

シェルスプリクトを実行して、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 」とすれば、間違っている行は、行数とともに、コマンドが見つかりませんと言った意味の出力がされる。

かっこいいよね?

黒い画面に、文字が流れるように表示されて、めっちゃかっこいいよね。危ない人みたいだよね。

でも、やっぱりかっこいいよね。

-Linux

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

CentOS7にComposerを導入する

やっぱりまたComposerが必要なライブラリに出くわしてしまったので、パッケージ管理システムとやらComposerをCentOS7のサーバにインストールしていきます。 つい先週ぐらいに必要なのか…で …

no image

自宅サーバのApacheで仮想ホストをつくってhostsでホスト名を設定

自宅のテストサーバのApacheで、仮想ホストをつくって複数のWebアプリを同時に動かしたい。アクセス元となるPCでhostsを設定して、アクセスの際のホスト名ごとに各Webアプリが動くようにする。

no image

Linuxで時刻の同期をする

モバイルノートにUbuntu系のLinux mintを入れて使っているが、バッテリー切らせたまま放置して時刻が狂ってしまうことがしばしばある。 さくっと自動で同期するコマンドを覚えておこう。