#!/bin/bash
# Program--fib.sh
# Use loop to calculate fibonacci at n
# History:
# 2013/05/24 Aborn V0.0
# note: if you find the follow error msg
# declare: not found
# pls. use the follow cmd.
# sudo ln -s /bin/bash /bin/sh -f
declare -i i;
declare -i n;
declare -i pre;
declare -i rs;
if [ "$#" = "1" ];then
n="$1"
else
read -p "input the n (number):" n
fi
echo "calculate f($n)..."
i=0;
rs=0; # the current num f(n)
pre=0; # the previous num f(n-1)
while [ "$i" != "$n" ]
do
i=$(($i+1))
if [ "$n" -lt "0" ]; then
echo "n($n) must be assigned non-negative"
exit 1
fi
if [ "$i" = "0" ]; then
pre=0;
rs=0;
elif [ "$i" = "1" ]; then
pre=0;
rs=1;
else
rs=$(($rs+$pre));
pre=$(($rs-$pre));
fi
echo -n "$rs ";
done
echo -e "\nThe th-$n fibonacci is f($n)=$rs"
你如果发现运行时出现如下error
declare: not found
在终端运行以下命令就行(因为sh默认指向的是dash,我们想要的是bash)
sudo ln -s /bin/bash /bin/sh -f
运行结果如下:
写shell脚本尤其要注意空格, []里尤其如此,经常出错