注册 登录
编程论坛 Linux教室

shell类c问题,求教

明明白白 发布于 2012-09-03 23:05, 1625 次点击
#!/bin/bash
i=0
(
        while (( i < 3 ))
        do
                echo hello
                i=`expr $i + 1`
                sleep 1
        done
        echo "i=$i"
)
echo "i=$i"

文件名:test1.sh
dangming@dangming-desktop:~/user/review/shell$ sh test1.sh
test1.sh: 12: cannot open 3: No such file
test1.sh: 12: i: not found
i=0
i=0
不知道错在哪里,我的ubuntu是这个结果,别人的redhat、ubu可以执行



     
5 回复
#2
pangding2012-09-03 23:26
是因为 sh 把 < 认成输入重定向了。但没有叫 3 的文件可用来读取输入。

你知道 #!/bin/bash 是什么意思吗?是希望这个脚本能由 bash 来执行。
(( )) 这种语法是 bash 扩展的,sh 没有。你用 $ bash test1.sh 来执行就行了。
#3
madfrogme2012-09-03 23:32
原来如此, 受教了
#4
zklhp2012-09-04 08:21
来学习了
#5
巴布亚2012-09-09 10:16
刚刚接触,还看不懂你们在干嘛呢???
#6
有容就大2012-09-09 11:12
火星上 都是高级灵长类~~
1