#!/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脚本尤其要注意空格, []里尤其如此,经常出错