業務でシェルスクリプトをいじることがあったので、メモっておきます。ペーペーのエンジニアなので浅い知識で申し訳ないですが、勉強のためにまとめてみました。
シェルってなんぞやって思っている方や簡単なシェルスクリプトを書いてみたいという方は参考にどうぞ!
そもそもシェルって何?
シェルとは、コンピュータのOS(オペレーティングシステム)を構成するソフトウェアの一つで、利用者からの操作の受け付けや、利用者への情報の提示などを担当するもの。
(出典:IT用語辞典)
つまり、私たちユーザがOSに対して命令する際に、直接OSに命令できるのではなく、「シェル」を介してやり取りをする必要があるということですね。
ざっくりとこんなイメージです。サクッと図にしてみました。
OSの周りの殻のような部分がシェルです。ということは、私たちユーザはシェルが解釈できるプログラムで命令することになります。
シェルスクリプトとは?
シェルスクリプトとは、複数の処理をまとめて行う(バッチ処理)ときに使われる、OSのシェルが直接解釈・処理できるスクリプト。
(出典:IT用語辞典)
要するにシェルスクリプトとは、シェルで解釈できる命令を書いたプログラムのことです。
ざっくり例を書いてみるとこんな感じです。シェルはインタプリタ形式で使うことができます。
シェルスクリプトを書いてみよう!
シェルスクリプトファイルは基本的に.shの拡張子で作成します。
以下、例として簡単なシェルスクリプトを書いてみます。
・test.sh
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/shell if [ $1 = hello ]; then echo arg is hello elif [ $1 = world ]; then echo arg is world else echo arg is neither hello or world fi |
コードを書き始める前の1行目に「#!/bin/sh」と書きます(Linuxだと「#!/bin/bash」だと思う。ターミナルではこれでいけました)。シェルスクリプトを書くことを知らせるものです。
$1は引数を1番目の引数を表しています。$2だったら2番目。10番目以降の引数は${10} のように {} を使用する必要があります。
以下のコマンドを実行します。
1 2 3 | ./test.sh hello echo arg is hello |
すると「echo arg is hello」と返ってきたのではないでしょうか。
一方、以下のコマンドを実行すると、「echo arg is neither hello or world」と返ってくると思います。
1 2 3 | ./test.sh test echo arg is neither hello or world |
このようにシェルが解釈できるシェルスクリプトを実行し、OSとのやり取りを行います。