分页: 1 / 1
bash实现循环操作的问题,求指点
发表于 : 2010-09-07 20:46
由 hfutliuwei
写了一个循环执行100次的脚本,参考了多篇Google出来的问题,折腾了很久但是就是搞不定。故来此求教
代码: 全选
#!/bin/bash
VAR=0
while [ "$VAR" -le 100 ];do
echo "$VAR"
$VAR=$(($VAR + 1));
done
错误提示:
./whiletest.sh: line 5: 0=1:找不到命令
0
./whiletest.sh: line 5: 0=1:找不到命令
Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-07 20:56
由 wzssyqa
你是想。。。
VAR=$(($VAR + 1));
这样吧?

Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-07 21:10
由 hfutliuwei
wzssyqa 写了:你是想。。。
VAR=$(($VAR + 1));
这样吧?

写错了~改过来了,还是不行
Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-07 21:27
由 wzssyqa
100 后边要有个空格的。。。
Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-07 21:28
由 hfutliuwei
wzssyqa 写了:你是想。。。
VAR=$(($VAR + 1));
这样吧?

确实,但是现在的问题是shell把变量值当命令了
./whiletest.sh: line 5: 0=1:找不到命令
0
./whiletest.sh: line 5: 0=1:找不到命令
Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-07 22:10
由 aerofox
hfutliuwei 写了:wzssyqa 写了:你是想。。。
VAR=$(($VAR + 1));
这样吧?

确实,但是现在的问题是shell把变量值当命令了
./whiletest.sh: line 5: 0=1:找不到命令
0
./whiletest.sh: line 5: 0=1:找不到命令
出现这个错误说明你还没有去掉 “$VAR=” 中的 “$”,如果去掉了,肯定是没问题的。另一个实现同样功能的循环是:
代码: 全选
#!/bin/bash
for ((VAR=0; VAR<=100; VAR++)); do
echo $VAR
done
此外,实现“VAR=$(($VAR+1))”这一功能的语句还有:
代码: 全选
VAR=$((VAR+1))
((VAR=$VAR+1))
((VAR=VAR+1))
((VAR++))
Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-07 22:31
由 wzssyqa
学习下ls的茴香豆的四种写法。。。
Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-08 8:54
由 trigger
for i in {0..100}
do
echo $i
done
这样比较简单
Re: bash实现循环操作的问题,求指点
发表于 : 2010-09-08 9:39
由 eexpress
那还不如直接seq啊。
有
(( var ++ ))
的写法啊。类C的计算。