特殊変数$#はシェルに渡された引数の個数を表します。
シェルスクリプトに渡された引数の個数を調べるには特殊変数の$#をみればよい。
特殊変数$0は現在実行しているシェルスクリプトのファイルパスが格納されます。
最後に実行したコマンドのexit値は特殊変数$?で取得できます。
シェルの特殊変数$@はスクリプトに渡された引数すべてを表示します。
basenameコマンドはパス名からファイル名を取り出すために使用されます。
case文は文字列を比較して、一致したブロックを実施します。サービスの起動スクリプトなどでよく使用されます。
dirnameコマンドはファイルパスからディレクトリ情報を取り出す際に使用されます。
echoで出力した文字は最後に改行されてしまいますが、-nオプションをつければ改行されずに出力されます。
for文はwhile文同様、ループ処理を行う際に使用されます。
if文は条件によって制御を振り分ける時に使用されます。
killproc関数は/etc/rc.d/init.d/function 内に定義されています。functionファイルでは、その他daemon 関数など、起動スクリプト内でよく使われている関数が記述されております。
キーボードから入力を受け付けるにはreadを使用すればよい。
readonlyは組み込みコマンドで、変数を読み込み専用にします。readonly宣言された変数の値を変更しようとするとエラーがでます。
シェル変数の一覧を表示するにはsetコマンドを用います。
sourceコマンドはファイルをスクリプトとして読み込むためのコマンドです。ただし通常はピリオドで代用することが多いです。実際に/etc/rc.d/init.d/httpd 内にこの記述があるかと思います。
testコマンドは与えられた引数を条件式として評価し、その結果が真の時は 終了状態にゼロ(真)を、偽の場合はゼロ以外の値を返します。
while文は繰り返し処理をする際に使用されます。
シェルスクリプトにおける演算は $((計算式))とするかexprコマンドを使用します。
bash や shに-xオプションをつければ、プログラム実行中の変数の内容などが表示されるので、この情報をもとに問題の箇所を探すことができます。
シェルの組み込みコマンドであるコロンひとつのヌルコマンド(:)は常に戻り値が0の値を返します。このコマンドは無限ループを意図的に作る場合などに使用されます。
ヒアドキュメントを使用すれば長い文字列を簡単に出力することができます。
変数に格納された文字数を調べるには${#変数名}を参照すればよい。
シェルスクリプトでは以下のような数値比較演算子が使用できます。
シェルスクリプトでは以下のような文字列比較演算子が使用できます。
コマンドブロックを使えば、複数コマンドの結果をひとつのファイルにリダイレクトできます。