ShellScriptで引数を受け取れるようにしたいです。
ShellScriptの引数は「$1」「$2」「$3」…と書けば参照できるぞ。
✔️ 本記事のテーマ
ShellScriptで引数を渡す方法
✔️ 読者さんへの前置きメッセージ
結論から述べると、
以下のようにShellScriptを実行することで引数を渡すことができます。
sample.sh aaa bbb ccc
そしてこれらの引数は「$1」「$2」「$3」と書くことでShellScript内で参照することができます。
本記事は「ShellScriptの引数」について書いています。
この記事を読むことで
「ShellScriptの引数の渡し方/受け取り方 や ShellScriptで関数を定義したときの引数」
について理解できます。
ShellScriptは、WindowsやMac といったOSに関わらず、便利な技術です。
この記事ではそんなShellScriptの引数について解説しています。
では、解説していきましょう。
ShellScriptで引数を定義するには
ShellScriptで引数を使うには、
- ShellScript内で引数を参照する処理を書く
- ShellScriptの実行時に引数を渡す
という2ステップが必要になります。
順番に説明していきましょう。
ShellScript内で引数を参照する処理を書く
まず引数を参照する処理を書いてきましょう。
ShellScriptで引数を参照するにはShellScript内で
「$1」「$2」「$3」…
と書くことで参照することができます。
試しにコードで示してみましょう。
#! /bin/bash
echo "No.1=" $1
echo "No.2=" $2
echo "No.3=" $3
このShellScriptは第1引数を「No.1=~」、第2引数を「No.2=~」、第3引数を「No.3=~」
というように表示するプログラムです。
「$」の後ろに数字を指定することでその順の引数を参照することができます。
ShellScriptの実行時に引数を渡す
次に、作成したShellScriptを実行してみましょう。
この実行時に引数を引数を渡すことができます。
sample.sh aaa bbb ccc
今回は第1引数にaaa、第2引数にbbb、第3引数にcccを渡しています。
すると、実行結果は以下のようになります。
# No.1=aaa
# No.2=bbb
# No.3=ccc
このように、ShellScript内で「$」で参照先を指定して、
実行時に引数を渡すという方法で引数を定義することができます。
ちなみに、ShellScript内で定義されている以上の引数を渡すと無視されて処理が進みます。
sample.sh aaa bbb ccc ddd
# No.1=aaa
# No.2=bbb
# No.3=ccc
逆に、ShellScript内で定義されている引数を渡さないと該当する参照元は空文字になります。
sample.sh aaa bbb
# No.1=aaa
# No.2=bbb
# No.3=
ShellScriptで関数の引数を定義するには
ShellScriptでは関数を定義して、その関数の引数を定義することもできます。
「ShellScriptの引数」と「ShellScript内の関数の引数」では定義が少し違いますが、
基本的には同じです。
次から、ShellScript内の関数の引数について解説していきましょう。
ShellScriptで関数を定義する
ShellScriptで関数を定義するには以下のように書きます。
関数名 () {
処理名
}
今回はこのような関数に引数を渡して、その関数内でその引数を参照するようにします。
コードで示しましょう。
hello() {
echo "Hello, $1 !!!"
}
関数に引数を渡して実行する
関数を定義すれば、実行は関数名をコマンドのように書くだけです。
引数もコマンドと同じように関数名の後にスペースを挟んで書けばOKです。
では、上記の関数をShellScriptの中で実行してみましょう。
hello Taro
すると、実行結果は以下のようになります。
# Hello, Taro !!!
ShellScriptの使い道
ところで、ShellScriptはどのような場面で使うのでしょうか?
ShellScriptは使えるようになると、実は使い道の多いスキルです。
普段、面倒だと思いながらやっている大量のファイルのコピーや移動、ファイル名の変換などをShellScriptを使うことで自動化することが出来ます。
また、最近ではDockerの登場によってプログラムをコンテナ上で動かすこともあるでしょう。そのような時にDockerコンテナ内での作業(例えば、開発環境の構築など)もShellScriptで自動化することが出来ます。
Dockerの登場が改めてShellScriptの需要を高めたと行っても過言ではないでしょう。
参考までにDockerについては
などの記事で解説しています。
ShellScriptについてもっと知識をつけるなら
ShellScriptは手軽に作成できて、Linux/Unix/MacOSなどで動くスクリプトです。
広くIT業界で使われているので汎用性の高いスキルと言えるでしょう。
ShellScriptやLinuxコマンドについて学ぶためには以下の書籍がオススメです。
この書籍はLinuxやBashコマンドについて深い部分までかなり丁寧に書かれています。
Linux自身の機能だけでなく、シェルスクリプトを使ったプログラミングや、
イマドキのエンジニアなら知っておくべき知識についても解説されています。
Linuxコマンドについて徹底的にスキルを習得したい人にオススメです。
エンジニアとしての自身の価値をチェックする(完全無料)
エンジニアとして、
自分の価値がどれくらいのものかご存知でしょうか?
エンジニアとしてIT業界に身を置いていると
今の会社でずっと働くのか、フリーランスとして独立するのか …
と様々な選択肢があります。
どの選択肢が正解なのかを見極めるためにも、選択肢を広げるためにも
自身の価値を知っておくことはとても重要です。
TechClips ME では、
職務経歴書をアップロードするだけで企業からのスカウトを受けることができます。
▼▼▼▼▼
▲▲▲▲▲
しかもTechClips MEでは想定年収を企業から提示してくれるので、
自身の価値を数字で分かりやすくたしかめることができます。
登録はもちろん完全無料なので、一度登録してみると良いかもしれません。
コメント