初めて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
出来ました。