フリーランスエンジニア向けIT系求人・仕事・案件情報サイト
更新日

【入門編】シェルスクリプト自動化に向けて作成・実行方法をご紹介!

シェルスクリプトを簡単に言うと、シェルで解釈できるプログラミング言語や命令を寄せ集めて作ったプログラムのことです。

そこでこの記事では、シェルスクリプト自動化に向けて作成方法や実行方法などをご紹介します。エンジニアの方やシェルスクリプトについて詳しく知りたい方は、ぜひ参考にしてくださいね。

シェルスクリプト自動化に向けてコマンド実行してみよう!

シェルスクリプトは、OS操作のためにシェル上で実行できる簡単なプログラミング言語(スクリプト言語)のことです。

また、プログラミング言語などで書かれた複数のOSコマンドや制御文などを組み合わせた簡単なプログラムを指します。一般的には、LinuxなどのUNIX系OSのシェルで実行できるものを指します。

シェルスクリプトで書かれている典型的な処理例としては、ファイル操作やプログラム実行、テキスト印刷などがあります。主に、定型作業の自動化に使われることが多く、条件命令の実行、ファイル読み込み・書き出しなど、上から順場にコマンド実行されるので、その都度コマンドを打たなくても良いのです。

シェルスクリプト基本設定

まずは、シェルスクリプトの基本設定を行いましょう。

ファイル作成

シェルスクリプトのファイルは、「.sh」拡張子で基本作成します。
ここでは、「test.sh」ファイルを作成します。

シェルスクリプト記述で最初に覚えなければならないのは、以下の記述です。

#!/bin/sh

#はhash、!はbang、#!はシェバンと呼びます。
シェバンからスクリプトを実行するインタープリターが呼ばれ、「/bin/sh」のファイルが実行されるという意味です。「#!/bin/sh」を書いて、システムにシェルスクリプトを書きますと伝えるのです。

Bashの独自機能を使う際は、「#!/bin/bsh」と書きます。
シェルスクリプトファイル「test.sh」を実行するには、ターミナルからファイルが保存される場所で、次のどちらかのコマンドで実行できるので覚えておきましょう。

$./ test.sh
$sh test.sh

ファイルを実行すると、「Hello,World!」と表示されます。

シェルスクリプト基本コマンド−引数−

シェルスクリプトは、以下の特殊変数で引数を取得できます。

  • $0:シェルスクリプトのファイル名
  • $1:1番目の引数
  • $2:2番目の引数
  • $#:引数の数
  • $$:プロセス番号
  • $*、$@:全引数リスト

シェルスクリプト基本コマンド−変数−

変数の名前は、半角数英数字とアンダーバーが使用できます。また、変数に値を与える際は、「=」を前後空白無しで書きます。
文字列の場合は、「”」を付けて囲みます。変数にアクセスする際は、変数名の前に「$」を付けるか、「$」を付けて変数を「{}」で囲みます。そして、一つの変数には一つの値しか保存できません。
変数値の上書きをなくすには、「readonly」を使います。変数を「unset」で削除することができます。

シェルスクリプト基本コマンド−改行−

シェルスクリプトは、原則として行単位で処理されます。コマンドラインで、エンターキーを押すところで改行します。また、シェルスクリプトの場合は、処理のブロックごとに改行を入れて読みやすくする場合もあります。

空白の入れ方

空白はコマンドラインと同じように、コマンドや引数の区切りとして扱われます。空白は一つでも二つでも動作は一緒で、行頭や行末に入れても問題ありません。

処理のまとまりごとに改行を入れたり、空白を入れて文字の位置を揃えたりするなど、空白や改行を上手に取り入れることにより、スクリプトが読みやすくなります。

シェルスクリプト基本コマンド−echo−

「echo」は、画面に数値や文字列、変数を表示するコマンドです。エコーと読み、そのまま繰り返すという意味を持ちます。

使い方はシンプルで、「$ echo」を書くだけです。画面にHelloという文字を表示する際は、「$echoHello」と書きます」。

シェルスクリプト基本コマンド−コメント−

コメントを入力する際には、「#」を書きます。
「#」を入力した位置から行の最後までがコメントになります。
しかし、「”」や「’」で囲まれている場合は、文字列として扱われてしまうので注意が必要です。

まとめ

シェルスクリプトは、はじめは難しく感じるかもしれませんが、一度書いてみて実行結果がわかると、理解がスムーズに進むでしょう。

ぜひ、シェルスクリプトしっかり理解し、日頃の業務などに役立ててくださいね。

\ ログインしなくても検討機能が使える♪ /
Linux(OS)の案件を見てみる