分页: 1 / 1

shell while 循环求助

发表于 : 2010-12-15 12:05
20091157
#!/bin/bash
#

i=1
while [$i -gt 100]
do
i=$[$i+1]
done
echo $i


然后执行命令 bash 5.sh

结果:5.sh: line 4: [1:找不到命令
1

这是怎么个情况?求指点!!

Re: shell while 循环求助

发表于 : 2010-12-15 12:15
eexpress
-gt是大于。
-lt吧。
反了

Re: shell while 循环求助

发表于 : 2010-12-15 12:18
20091157
主要问题是5.sh: line 4: [1:找不到命令
我不明白为什么会找不到命令

Re: shell while 循环求助

发表于 : 2010-12-15 12:24
20091157
5楼 :em11 加了空格就好了 竟然是因为空格!!!这是为什么呢?

Re: shell while 循环求助

发表于 : 2010-12-15 13:09
huangyun
加空格就好的原因是因为 '[' 不是bash的内置命令,而是一个可执行程序

代码: 全选

$ ls /usr/bin/\[ 
/usr/bin/[
直接在终端输入 '[' 的提示

代码: 全选

$ [
bash: [: missing `]'

Re: shell while 循环求助

发表于 : 2010-12-15 13:46
20091157
谢谢 5楼和7楼 :em05

Re: shell while 循环求助

发表于 : 2010-12-15 17:21
linux_os
加空格,[是test命令的另一种写法,你用命令的时候,是不是一定要加上一个空格來区分命令名和参数? 那这个也是这个道理

Re: shell while 循环求助

发表于 : 2010-12-17 14:09
linxiaoyu
写过脚本的都知道。。。[]你放的太近了。。
shell 的有些要求感觉是挺变态的
比如字符串比较
[[ $a == string ]]
== 左右必须得有空格。。。

Re: shell while 循环求助

发表于 : 2010-12-18 22:16
20091157
谢谢楼上的高手们指点哈~