2分でサクッと自動化シェルスクリプト

Linuxコマンド シェル

ターミナル上でのコマンド操作をする機会が増えると
「毎回この手順は面倒だ、自動化したい…」
と思うようになる。

この記事は「シェルスクリプトの文法を学びたい」
というよりは「適当でいいからサクッと自動化したい」
という目的で書いている。

何はともあれHello, World.

基礎中の基礎、Hello, Worldができれば
ある程度のコマンドは自動化できるようになる。

Hello, World出力コマンドの代わりに
実行したいコマンドを列挙すれば良い。

まずは「hello.sh」というファイルを作成する。

必須ではないが、シェルスクリプトのファイルだと分かるように
拡張子を.shにするのが一般的だ。

「hello.sh」の中身は以下の通りだ。

#!/bin/bash
# この行はコメント
echo "Hello, World."
exit 0

ここのポイントは4つある。

  1. #!/bin/bashは、bashを利用するためのおまじない
  2. 一行コメントは#で始める
  3. 実行したいコマンドをそのまま書く
  4. exit 0で、コマンドが正常終了したことを意味する

ちなみに、exit 1とすると、異常終了であることを表す。

実行方法

実行方法は2通りあるが、
さっさと実行したいのであれば1の方法をおすすめする。

方法1:「bash ファイル名」で実行する

$ bash hello.sh
Hello, World.

方法2:「(パスを含めた)ファイル名」で実行する

これは対象のファイルを実行可能ファイルにしておく必要がある。

$ ls -l hello.sh
-rwxr-xr-x  1 username  staff  40  5 31 20:14 hello.sh

$ ./hello.sh
Hello, World.

ちなみに、chmod +x ファイル名
実行可能ファイルにすることが可能。

引数

上記の状態で、決まり切ったコマンドは十分実行できるが、
実行時に引数を指定したいときがある。

以下の3つを覚えておけば良い。

  • $0:実行コマンド自身(パスを含む)
  • $1:第一引数
  • $2:第二引数
#!/bin/bash
echo $0
echo $1

上記の「hello.sh」を実行してみると、
以下のような実行結果となる。

# 実行結果
$ bash hello.sh こんにちは
hello.sh
こんにちは

まとめ

  • 行頭は#!/bin/bashで始める
  • (なくても実行できるが)exit 0で締めくくる
  • 実行したいコマンドを一行ずつ並べておけば、順次実行してくれる

if文やfor文、変数定義など他にも文法はいろいろ存在するが
ここで紹介したことが活用できれば、ある程度の作業自動化は十分可能である。

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