shellの書き方 HelloWorldを出力するshellスクリプトを書いてみた

初めてshellスクリプトを書いてみました。実行するとHellWorldとコンソール出力するshellスクリプトです。

ファイルの作成

まずはファイルの作成です。 .sh と拡張子がつくとLinuxがshellスクリプトとして認識してくれます。ここでは名前をtest.shとしてshellスクリプトを作成してみます。場所は任意の場所でいいのですが、ここでは/tmpに作成することにします。

$ cd /tmp
$ vi test.sh

shellスクリプト実装

test.shの中身を記述していきます。

#!/usr/bin/bash
echo HelloWorld

shellスクリプトの実行

shellスクリプトが作成できましたので、実行してみます。実行するときにはshellスクリプトの前に./を付けます。

$ ./test.sh
-bash: ./test.sh: /usr/bin/bash^M: bad interpreter: No such file or directory

実行してみましたがHelloWorldは出力されません。おかしいですね、そのようなファイルやディレクトリは無いとログが出力されてechoが実行されていないようです。

なぜでしょうか。ググってみると同様の事象がよくあるようです。改行がおかしいとこういう事象がおきるらしく、Windows環境からコピー&ペーストしてソースコードを持ってくると改行がおかしくなることが多いようです。

詳細はこちらへどうぞ。

Windows/Linuxの改行について。Javaで改行を実践してみる
WindowsとLINUX(UNIX系)では改行コードが違います。Windowsでは CRLF で、UNIX系全般では LF です。表にする...

改行コードを正規表現を用いて直します。

$ sed -i 's/\r//' ./test.sh

再度実行してみます。

$ ./test.sh
HelloWorld

出来ました。