日期:2014-05-16  浏览次数:20638 次

linux编程:
问题:输入一正整数n,打印1‐n之间的整数,要求去掉包含7的数字和7的整数倍的数字。
!/bin/sh
#inout a number n:
echo "please input a number:"
read line
i=1
for i in $line
do
        if[`expr$i%7`!="0"];then
         echo $i
        else
                while[$i!=0]
                do
                if[`expr$i%10`!=7]
                i=`expr $i/10`
                done echo $i
        fi
i=`expr $i+1`
done
错误提示:
./second.sh: 8: ./second.sh: Syntax error: "then" unexpected (expecting "done")


麻烦大牛帮一下忙,刚开始学习。在线等。谢谢

------解决方案--------------------
if 中括号 中间两边留空白了么?
if[ `expr$i%7`!="0" ];then
------解决方案--------------------
试试这样判断

if(($i%7==0))
------解决方案--------------------
哦,写错了
这样呢

if((i%7==0))
------解决方案--------------------
expr 是数值型的, "0" 是字符串 个人推测 
1.[] 加空格(if后加 表达式与[之间也加)
2. 用eq不用"="