この記事は簡単なシェルスクリプトの作成方法から、実行するところまでやさしく解説する
シェルスクリプト入門です。
動作環境 Linux CentOS 7 / bash 4.2.46
#シェルスクリプトについて
- 実行したい一連のコマンドを、あらかじめ記述しておくファイルのこと
- 実行したい処理をシェルスクリプトで書くことによって、作業の自動化が可能になる
簡単なシェルスクリプトの作成
Hello world を表示する、簡単なシェルスクリプトを作ってみましょう。
①作成する前に何のシェルでログイン利用しているか、コマンドラインでチェックしてみます。
$echo $SHELL
/bin/bash
-
$SHELL
はシェル変数と呼び、ログインシェルのパスが格納されています。
②コマンドラインにてhello.sh
を作成します。
$vi ./hello.sh
#!/bin/bash
echo "Hello world!"
- シェルスクリプトの拡張子は慣習で
.sh
とします。 -
#!bin/bash
はshebang(シェバン)といい、bashで動作しますよという宣言です。
標準シェルのsh
の場合には#!/bin/sh
とします。
シェルスクリプトの実行
シェルスクリプトの実行方法を3通り紹介します。
①bashの引数として実行
こちらは実行権限がなくても実行可能です。
※ファイル名のみの指定で実行できるのはカレントディレクトリにある場合のみ
ファイルが別のディレクトリにある場合は、絶対パスもしくは相対パスで指定
$bash hello.sh
Hello world!
②ファイル名を指定して実行
実行する前に、実行権限をつける必要があります。
$chmod 755 ./hello.sh
または
$chmod +x ./hello.sh
これで実行権限が付与されたので、実行可能です。
$./hello.sh
Hello world!
-
./
でカレントディレクトリを指定する必要があります。
③コマンドとして実行する方法
最後にシェルスクリプトを自作コマンドとして実行する方法を紹介します。
PATHを通すことによってコマンドとして実行できるのでおすすめです。
条件
1.実行権限があること
2.PATHが通っていること
まずは実行権限を付与
$chmod 755 ./hello.sh
または
$chmod +x ./hello.sh
次に自分のシェルスクリプト置き場を作成し、そこに先ほどのhello.sh
を移動させます。
自分はshellscript
というディレクトリ名で、置き場所を作成しました。
$mkdir ~/shellscript
$mv ./hello.sh ~/shellscript
最後に.bash_profile
を編集し、/shellscript
へのPATHを通します。
$vi ~/.bash_profile
PATH=$PATH:~/shellscript
export PATH
$source ~/.bash_profile
これでhello.sh
をコマンドとして実行することが可能になりました!
どこのディレクトリからでも実行可能です!
$cd ~
$hello.sh
Hello world!