シェルスクリプトでフィボナッチ数列を書いてみます。たとえば、ユーザーが5
コマンドラインでスクリプト名の後に入力した場合、スクリプトは最初から5つのフィボナッチ数を出力する必要があります。
0 1 1 2 3
スクリプトを完了しましたが、この部分で問題が発生しているのが正の数であるかどうか、ユーザー入力を確認する必要があります。コマンドラインで、ユーザーはスクリプトを呼び出してから正の数を入力する必要があります
./script number
これが私のコードです:
#!/bin/sh
[ $# -ne 1 ] && { echo "enter a number please" ; exit 1 ; }
[ ! echo $1 | egrep -q '^[0-9]+$' && $1 -lt 0 ] && { echo "negative" ; exit 1 ; }
f0=0
f1=1
counter=2
if [ $1 -eq 0 ] ; then
echo -n "0"
elif [ $1 -ge 1 ] ; then
echo -n "0 1"
fi
while [ $counter -le $1 ] && [ $1 -gt 1 ] ; do
echo -n "$fn "
fn=`expr $f0 + $f1`
f0=$f1
f1=$fn
counter=`expr $counter + 1`
done
echo ""