-- bashスクリプトその3 --
シェルスクリプトの引数は、$記号の後ろに0~9の数値を記述してアクセスする場合と$*ですべての引数を1つ1つ処理する方法に分かれます。
前者は、固定の引数を取る場合に有効です。
後者は、オプション指定やコマンドにより引数の数が変動する場合に有効です。
では固定の場合、どのような処理を行うか見てみます。
#!/bin/bash
if [ $# -eq 2 ]
then
echo "source=$1"
echo "target=$2"
if [ -f $1 ]
then
cat $1 > $2
else
echo "source file ($1) not found!!"
fi
else
echo "barg1 Error!!"
echo "usege1: barg1 [source] [target]"
fi
このように引数が2つありそれぞれの引数の使われ方が限られている場合このような処理を行います。
シェルスクリプトの処理内容を以下に説明します。
if文により引数が2つあることを確認して、それ以外はエラーとして処理します。
次に、取得したパラメータを表示した後次のif文でファイルが存在するかをチェックし存在する場合、catコマンドのリダイレクトを使い内容のコピーを行います。
ここで出てくるif文は様々な判断を[ で行います。このカッコはtestと呼ばれるコマンドと同じで真が0偽は1で帰ってきます。
ソース中の$#は引数の個数を示しており、動画中の$?は終了コードを示しています。