基礎
コマンドラインをあらかじめ記述しておくファイルのことを、シェルスクリプトと呼びます。
シバンは宣言を表します。
#!/bin/bashなら「このショルスクリプトは/bin/bashで動かします」と宣言しています。
ファイル名を指定することで、シェルスクリプトを実行できます。
sorceコマンドで、シェルスクリプトを実行できます。
source シェルスクリプトファイル でOKです。
sourceコマンドは、指定したファイルの内容をそのままコマンドラインに入力したときと同じように実行します。
ファイル名指定とsorceコマンドによる実行は挙動が違うので注意が必要です。
シェルスクリプトではから行は無視されるため、読みやすくするためにいくつ空行をいれてもかまいません。
;で区切ることで複数のコマンドを1行に書けます。
行末に\を置くことで途中で改行できます。
#を書くとその行の終わりまでがコメントとなります。
シェル変数に値を代入するには<変数名>=<値>という形で指定します。
変数の値を参照するには、変数名の前に$を付けます。
変数の書き方の注意
代入時には$はつけない。
=の前後にはスペースを入れない。
変数名に利用できる文字は、アルファベットと数値と_(アンダースコア)だけです。
変数名の1文字目に数値は使えません。
{ }で囲むと変数名の区切りを明示することができます。
クオテーションを使うことで、空白を含む文字列を1つの単語として認識できます。
ダブルクォテーションもシングルクォテーションと同様に使います。
違いは、ダブルクォテーションは$による変数展開や、コマンド置き換えを有効のままになります。
コマンド置換「$( )」で、コマンドの結果を文字列として取得することができます。
コマンド置換「$( )」は、「“」(バッククォート)で代用可能です。
位置パラメータ「$1,$2…」で、シェルスクリプトからコマンドライン引数を扱うことができます。
特殊パラメーター「$#」で引数の個数を参照できます。
引数を分割せずまとめて扱うには$@または$*を利用します。
if文
条件を評価して、その真偽に応じて処理を分岐する機能です。
条件を書いた後の;を省略することはできません。
[ ]の前後のスペースを除くとエラーになります。
if文の後ろに置くのは「コマンド」であって、条件式ではありません。
[ は組み込みコマンドです。
[ は、条件が正しければ0を、そうでなければ0以外を終了ステータスとして返すコマンドです。
$?で終了ステータス(整数値)を参照できます。
正常終了が0,エラー時は0以外の値を返します。
if文では、[ コマンド以外にもgrepコマンドなども使えます。
コメント