今回はLinuxのシェルスクリプトについて説明しようと思います。
シェルスクリプトというのはシェルで実行するコマンドを記載し、実行するファイルのことです。
例えばLinuxのCUI画面だと「mkdir」コマンドで空のディレクトリを作ったり、「touch」コマンドで空のファイルを作ったりしていますが、基本的に1行1行コマンドを手動で打ち込んで実行していると思います。
これらの実行している複数コマンドを全て1つのファイルに記載し、そのファイルを実行することで複数のコマンドを1度に実行することができます。
シェルスクリプトで何ができるのかというと、例えば毎日行っている定期作業を1度の実行で済ますことができます。
毎日定時に指定ファイルに記載する、指定ファイルやディレクトリをコピーする、バックアップを取る等、コマンドで実行可能な定期作業を全て1つのファイルを実行することで処理できます。
ちなみにシェルスクリプトファイルは「vi」等のテキストエディタで編集可能です。
シェルスクリプトの基本的な書式を下記に示します。
#!/bin/bash
---------------------
上記1行目にある「#!/bin/bash」はシバンと呼ばれていて、このシェルスクリプトを解釈・実行するシェルを指定するための文言です。シェルスクリプトにシバンは必ず記載する必要が有ります。あとは1行毎に実行したいコマンドをどんどん記載していけばシェルスクリプトの完成です。
シェルスクリプトを実行するためには実行権が必要なので「chmod」コマンドにより、下記のように実行権を付与する必要が有ります。
chmod +x シェルスクリプト名
そして実行するために下記コマンドをコンソールに打ち込みます。下記はカレントディレクトリ内にシェルスクリプトが有る前提です。
./シェルスクリプト名
このような流れでシェルスクリプトを実行します。次に簡単なシェルスクリプトの例を下記に示します。
---------------------
#!/bin/bash
touch memo1.txt
touch memo2.txt
touch memo3.txt
---------------------
上記のシェルスクリプトを実行すると、「memo1.txt」、「memo2.txt」、「memo3.txt」という3つのファイルがカレントディレクトリ内に作成されます。次に少し応用したシェルスクリプトの例を示します。
---------------------
#!/bin/bash
mkdir `date +%Y%m%d`
---------------------
このコマンドを実行すると、実行した年月日のディレクトリを作成することができます。
「date」コマンドは日付を表示するコマンドですが、表示する形式を指定することができます。
このシェルスクリプトでは「%Y」で年、「%m」で月、「%d」で日を指定しています。また、「date」コマンドの実行結果を文字列として扱うために`(バッククォート)で囲んでいます。
例えば2023年3月10日にこのシェルスクリプトを実行した場合、「20230310」というディレクトリが作成されます。
このようにシェルスクリプトを使えば、様々な定期作業を効率化することができます。
今回紹介したものは簡単なものでしたが、「for」による繰り返しや「if」や「case」による条件分岐等を使えばより複雑な処理も効率化できます。
Linuxによる作業の効率化には必須だと思いますので、今回紹介させていただきました。
・日時をファイル名に付けるには (itmedia.co.jp)
・シェルスクリプトとは?使用例やできること、使うための方法 | 株式会社パソナ(旧パソナテック)|ITエンジニア・ものづくりエンジニアの求人情報・転職情報 (pasonatech.co.jp)