我試圖檢查一個數字是否是迴文。我使用了一個名爲pal()
的函數。我得到這個錯誤,說:得到此錯誤「預計整數表達式:行10和23」在這個bash外殼
./pal.sh: line 10: [: input: integer expression expected
./pal.sh: line 23: [: input: integer expression expected
我的代碼:
#!/bin/bash
pal()
{
num=$1
rnum=$num
add=0
k=0
while [ $num -ne 0 ]
do
lev=1
mod= $num % 10
for((i=0;i<$k;i++))
do
lev=`expr $lev \* 10`
done
mul=`expr $mod \* $lev`
add=`expr $add + $mul`
num=`expr $num/10`
k=`expr $k + 1`
done
if [ $rnum -eq $add ]
then
echo "pallindrome"
else
echo "not pallindrome"
fi
}
echo "input number"
read input
pal input
歡迎堆棧溢出。請儘快閱讀[關於]頁面。你在程序中輸入什麼值?當你用'bash -x yourscript'運行它時,你會得到什麼?如果函數的內部沒有顯示,請在函數的開頭添加'set -x'來啓用跟蹤。這是基本的shell腳本調試技術;它將在未來幫助你。 –
'mod = $ num%10' =>'mod = $((num%10))' – anubhava