$# - シェルに渡された引数の個数


特殊変数$#はシェルに渡された引数の個数を表します。

$# - 引数の個数


シェルスクリプトに渡された引数の個数を調べるには特殊変数の$#をみればよい。

$0 - 実行しているシェルスクリプトのパス


特殊変数$0は現在実行しているシェルスクリプトのファイルパスが格納されます。

$? - 最後に実行したコマンドのexit値


最後に実行したコマンドのexit値は特殊変数$?で取得できます。

$@ - シェルスクリプトに渡されたすべての引数


シェルの特殊変数$@はスクリプトに渡された引数すべてを表示します。

basename - パス名からファイル名の取り出し


basenameコマンドはパス名からファイル名を取り出すために使用されます。

case文


case文は文字列を比較して、一致したブロックを実施します。サービスの起動スクリプトなどでよく使用されます。

dirname - ファイルパスからディレクトリを取り出し


dirnameコマンドはファイルパスからディレクトリ情報を取り出す際に使用されます。

echoで改行しない


echoで出力した文字は最後に改行されてしまいますが、-nオプションをつければ改行されずに出力されます。

for文


for文はwhile文同様、ループ処理を行う際に使用されます。

if文


if文は条件によって制御を振り分ける時に使用されます。

killproc関数


killproc関数は/etc/rc.d/init.d/function 内に定義されています。functionファイルでは、その他daemon 関数など、起動スクリプト内でよく使われている関数が記述されております。

read - 変数の読み込み


キーボードから入力を受け付けるにはreadを使用すればよい。

readonly - 変数の保護


readonlyは組み込みコマンドで、変数を読み込み専用にします。readonly宣言された変数の値を変更しようとするとエラーがでます。

set - シェル変数の一覧を表示


シェル変数の一覧を表示するにはsetコマンドを用います。

sourceコマンド (ピリオド)


sourceコマンドはファイルをスクリプトとして読み込むためのコマンドです。ただし通常はピリオドで代用することが多いです。実際に/etc/rc.d/init.d/httpd 内にこの記述があるかと思います。

testコマンド


testコマンドは与えられた引数を条件式として評価し、その結果が真の時は 終了状態にゼロ(真)を、偽の場合はゼロ以外の値を返します。

while文


while文は繰り返し処理をする際に使用されます。

シェルスクリプトにおける演算


シェルスクリプトにおける演算は $((計算式))とするかexprコマンドを使用します。

シェルスクリプトのデバッグ


bash や shに-xオプションをつければ、プログラム実行中の変数の内容などが表示されるので、この情報をもとに問題の箇所を探すことができます。

ヌルコマンドによる無限ループ


シェルの組み込みコマンドであるコロンひとつのヌルコマンド(:)は常に戻り値が0の値を返します。このコマンドは無限ループを意図的に作る場合などに使用されます。

ヒアドキュメント


ヒアドキュメントを使用すれば長い文字列を簡単に出力することができます。

変数に格納された文字数


変数に格納された文字数を調べるには${#変数名}を参照すればよい。

数値比較演算子


シェルスクリプトでは以下のような数値比較演算子が使用できます。

文字列比較演算子


シェルスクリプトでは以下のような文字列比較演算子が使用できます。

複数のコマンドの結果を同一ファイルに出力


コマンドブロックを使えば、複数コマンドの結果をひとつのファイルにリダイレクトできます。