shell while 循环求助

sh/bash/dash/ksh/zsh等Shell脚本
回复
20091157
帖子: 21
注册时间: 2010-03-01 11:51

shell while 循环求助

#1

帖子 20091157 » 2010-12-15 12:05

#!/bin/bash
#

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


然后执行命令 bash 5.sh

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

这是怎么个情况?求指点!!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: shell while 循环求助

#2

帖子 eexpress » 2010-12-15 12:15

-gt是大于。
-lt吧。
反了
● 鸣学
20091157
帖子: 21
注册时间: 2010-03-01 11:51

Re: shell while 循环求助

#3

帖子 20091157 » 2010-12-15 12:18

主要问题是5.sh: line 4: [1:找不到命令
我不明白为什么会找不到命令
20091157
帖子: 21
注册时间: 2010-03-01 11:51

Re: shell while 循环求助

#4

帖子 20091157 » 2010-12-15 12:24

5楼 :em11 加了空格就好了 竟然是因为空格!!!这是为什么呢?
huangyun
帖子: 49
注册时间: 2006-11-27 14:21
联系:

Re: shell while 循环求助

#5

帖子 huangyun » 2010-12-15 13:09

加空格就好的原因是因为 '[' 不是bash的内置命令,而是一个可执行程序

代码: 全选

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

代码: 全选

$ [
bash: [: missing `]'
20091157
帖子: 21
注册时间: 2010-03-01 11:51

Re: shell while 循环求助

#6

帖子 20091157 » 2010-12-15 13:46

谢谢 5楼和7楼 :em05
linux_os
帖子: 17
注册时间: 2009-08-20 19:33

Re: shell while 循环求助

#7

帖子 linux_os » 2010-12-15 17:21

加空格,[是test命令的另一种写法,你用命令的时候,是不是一定要加上一个空格來区分命令名和参数? 那这个也是这个道理
头像
linxiaoyu
帖子: 39
注册时间: 2009-05-03 21:09

Re: shell while 循环求助

#8

帖子 linxiaoyu » 2010-12-17 14:09

写过脚本的都知道。。。[]你放的太近了。。
shell 的有些要求感觉是挺变态的
比如字符串比较
[[ $a == string ]]
== 左右必须得有空格。。。
GONE WITH THE WIND ~~~
20091157
帖子: 21
注册时间: 2010-03-01 11:51

Re: shell while 循环求助

#9

帖子 20091157 » 2010-12-18 22:16

谢谢楼上的高手们指点哈~
回复