我试图在Bash shell中编写一个for循环。这是我想出来的:
for i in {0..20..5}
do
echo "Number: $i"
done
但是输出是:
Number: {0..20..5}
我也试过这个代码:
N=10
for i in 1 2 3 4 5 .. $N
do
echo "Welcome $i times"
done
但是在这种情况下,输出也是:
Welcome 1 times
Welcome 2 times
Welcome 3 times
Welcome 4 times
Welcome 5 times
Welcome .. times
Welcome 10 times
我想写一个for循环,在那里我可以取极限以及自增或自减值
这是完整的脚本:
#! usr/bin/bash
N=10
for i in 1 2 3 4 5 .. $N
do
echo "Welcome $i times"
done
for i in {0..20..5}
do
echo "Number: $i"
done
脚本似乎是正确的。
然而,正如你在评论中指出的那样,用sh
运行脚本似乎是这里的问题。
在基于Debian的发行版中,sh现在被链接到"dash"而不是"羞涩"。因此,当您执行sh
时,很可能已经使用破折号运行了此脚本。
命令
查看sh
是否链接到"&;dash&;"ls -la /bin/sh
如果输出是这样的:lrwxrwxrwx 1 root root 4 Oct 18 19:37 /bin/sh -> dash
,它的符号链接到&;dash&;
现在,问题应该解决了。
- 先让脚本可执行
chmod +x <script_name>.sh
- 尝试现在运行脚本
./<script_name>.sh
这将在bash中运行脚本。