可能重複:
How do I test if a variable is a number in bash?檢查,如果該參數是shell腳本中一些
我嘗試寫的shell腳本,例如斐波那契序列,如果用戶腳本後進入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 ""
@桑普森辰沒有工作。在提問之前我檢查過它。它沒有工作 – femchi