繁体   English   中英

为什么我的Shell脚本不起作用?

[英]Why won't my shell script work?

我正在使用bash,这是我的代码

for i in $(seq 20)
do 
     if [ $i % 3 == 0 ]
     then 
            echo HI
     else 
            echo $i
     fi
done

因此输出应为:1 2 hi 4 5 hi ...,依此类推。 但是在运行外壳程序时,我一直收到此错误。 script.sh 4:[:1:意外的运算符1然后一直这样,直到20。我尝试了不同的操作,但无法正常工作。

甚至更简单:

if ((i%3 == 0)) # No '$' needed
then
    ....

您需要将包含if的行更改为:

 if [[ $((i%3)) == 0 ]]

那可行。

用这个

for i in {1..20}
do 
     if [ `expr $i % 3` == 0 ]
     then 
            echo HI
     else 
            echo $i
     fi
done

应该像下面提到的格式,

如果[$ i%3 == 0]; 然后

但是如果您引入“ ==”符号,则只会产生1到20的增量值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM