分页: 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));

这样吧? :em04

Re: bash实现循环操作的问题,求指点

发表于 : 2010-09-07 21:10
hfutliuwei
wzssyqa 写了:你是想。。。

VAR=$(($VAR + 1));

这样吧? :em04

写错了~改过来了,还是不行

Re: bash实现循环操作的问题,求指点

发表于 : 2010-09-07 21:27
wzssyqa
100 后边要有个空格的。。。

Re: bash实现循环操作的问题,求指点

发表于 : 2010-09-07 21:28
hfutliuwei
wzssyqa 写了:你是想。。。

VAR=$(($VAR + 1));

这样吧? :em04

确实,但是现在的问题是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));

这样吧? :em04

确实,但是现在的问题是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啊。
:em04

(( var ++ ))
的写法啊。类C的计算。