shell的的有很多要注意的地方,程序邏輯簡單,但是語法細(xì)節(jié)比較多
#!/bin/bashfact(){#if 后必須要有空格if [[ $1<=1 ]]then echo 1elselocal j=$(($1-1))#local tmp=$( fact $1-1 ) #此處寫法為錯(cuò)誤的寫法#等號(hào)后不能有空格local tmp=$( fact $j)#local res=$(($tmp * $1 ))#利用輸出流 解決$? 最大值255的問題echo $(( $tmp * $1 ))fi}echo "enter your number:"read numecho "you put is :$num"#等號(hào)后面不能有空格,否則報(bào)錯(cuò),以下兩句是等價(jià)的rs=$(fact $num )#rs=`fact $num`echo $rs
需要注意的的是,local tmp=$( fact $1-1 )是錯(cuò)誤的,不知道有沒有更
正確的寫法是
local j=$(($1-1))
local tmp=$( fact $j)
等號(hào)后不能有空格,如 rs= $(fact $num ) 將報(bào)錯(cuò)
#if 后面必須要有空格
if [[ $1<=1 ]]