初めてのシェルスクリプト【作成から実行までの基本的動作】

Linux

どうも未経験でシステム業界に転職したキーです。
今回は初心者の方向けにシェルスクリプトの作成から実行まで基本的な動作方法について見ていきたいと思います。



そもそものシェルとは?

簡単にいうとユーザーがOS(Operating System)と対話することを可能にするソフトウェアのことです。
今回はシェルスクリプトのことが命題ですので、シェルについてもう少し知りたい方はこちらのサイトがわかりやすくてオススメです。【10分でわかるかもしれない】shell(シェル)とは?


シェルスクリプトとは?

ではシェルスクリプトは何かというと、複数のコマンドをあらかじめ用意しておき、実行時にその複数コマンドをまとめて実行できるというプログラミング言語になります。またコマンドだけではなく、変数や条件分岐、繰り返しなどの処理も簡単に実行することができます。


シェルスクリプトを作成する

では実際にシェルスクリプトを書いていきますので、ターミナルを開きましょう。
今回はシェルの中では一般的なbashを使用します。

現在使用しているシェルを確認する

$ echo $SHELL
/bin/bash

今回シェルスクリプトはviエディタを使用し、作成していきます。
viの操作は少し特殊なのですがLinuxを扱う方は必ずと言って良いほど使用するので、今のうちから操作に慣れておくために、こちらの記事を先に見ることをオススメします。
超初心者向けviエディタの使い方 

ではシェルスクリプトを作成していきます。今回はファイル名を「test」とします。
「.sh」拡張子は、シェルスクリプトの標準の拡張子となりますので今は気にせずこのようにしてください。

$ vi test.sh

テキストが開いたと思うので、ここから処理を書いていきます。

#!/bin/bash
echo “HELLO WORLD”

これで簡単なシェルスクリプトは作成できました。
※「!/bin/bash」はこのシェルスクリプトではbashシェルを使用するということを宣言しています。

初期作成時はシェルスクリプトの実行権限がないため、実行権限を変更しておきます。
※ ls -l test.sh で現在「test.sh」は実行権限がないことを確認

chmodで実行権限を付与する。
chmodコマンドについて

$ chmod 755 test.sh

ls -l test.sh 実行権限が付与されています。


シェルスクリプトを実行する

ではシェルスクリプトを実行していきますが、実行には色々なやり方があります。
ここでは3つほど紹介させていただきます。

①bashの引数として実行

・実行権限がなくても実行できます。
・ファイルがカレントディレクトリにある場合はファイル名のみで、なければ絶対パスを指定して実行できます。

$ bash test.sh
HELLO WORLD


②ファイル名を指定して実行する

$ ./test.sh
HELLO WORLD


③コマンドとして実行する

シェルスクリプトをlsコマンドのように自作コマンドとして作成し、実行していきます。

実行権限を付与しておきます。

$ chmod 755 test.sh

次にtest.shを別のディレクトリ内に移動させておきます。
私はDesktop/develop/shellscript内にtest.shを移動させました。
※別にしなくても良いです。

$ mv /Users/ユーザー名/test.sh  Desktop/develop/shellscript/test.sh

パスを通すために.bash_profileを編集します。

$ vi ~/.bash_profile
PATH=$PATH:~/Desktop/develop/shellscript
export PATH

上記二行を記載し、保存。パスに反映させるために以下のコマンドを実行します。

$ source ~/.bash_profile

これでどのディレクトリからでも「test.sh」で「HELLO WORLD」が出力されるようになりました。


おまけ

少しシェルスクリプト内を追記しておきます。

$ vi test.sh
#!/bin/bash

echo "HELLO WORLD"
read NAME
echo `date`
echo "Hi ," $NAME

上記をtest.sh内に記載し実行するとコマンド入力待ちとなり、入力すると「本日の日付 Hi , 入力文字」と表示されると思います。

今回は超基本的なシェルスクリプトの使い方を見ていきました。
まだまだ条件分岐や繰り返しなどを使用して色々と操作することができますので、ぜひ調べてやって見てください。

コメント

タイトルとURLをコピーしました