Linux “我犯了错误”;应为一元运算符“;
我在第5行和第11行得到了预期的错误一元运算符。 请帮助解决此问题Linux “我犯了错误”;应为一元运算符“;,linux,shell,redhat,Linux,Shell,Redhat,我在第5行和第11行得到了预期的错误一元运算符。 请帮助解决此问题 在第9行,您使用了正斜杠而不是反斜杠。此外,循环端应高于“如果”条件。如果条件也应修改为-eq echo ”enter the number” read n q=$n a=0 while [ $q -gt 0 ] do r=`expr $q % 10` q=`expr $q / 10` a=`expr $a + $r \* $r \* $r` done if [ $a -eq $n ] then
在第9行,您使用了正斜杠而不是反斜杠。此外,循环端应高于“如果”条件。如果条件也应修改为-eq
echo ”enter the number”
read n
q=$n
a=0
while [ $q -gt 0 ]
do
r=`expr $q % 10`
q=`expr $q / 10`
a=`expr $a + $r \* $r \* $r`
done
if [ $a -eq $n ]
then
echo “the number $n is armstrong number”
else
echo “the number $n is not armstrong number”
fi
用双引号将变量括起来,这样就可以了。另一个想法是使用
[[..]]
而不是[..]
。我认为第5行的问题可能是,-gt
应该是-gt
。在长破折号(em破折号?)上应该使用常规破折号,破折号和字母g之间应该没有空格。
echo ”enter the number”
read n
q=$n
a=0
while [ $q -gt 0 ]
do
r=`expr $q % 10`
q=`expr $q / 10`
a=`expr $a + $r \* $r \* $r`
done
if [ $a -eq $n ]
then
echo “the number $n is armstrong number”
else
echo “the number $n is not armstrong number”
fi