Rob*_*ume 11 unix linux bash shell
我正在尝试在UNIX脚本(bash)中执行一个简单的for循环.
这是我的脚本:
for i in {1..3}
do
echo "Welcome $i times"
done
Run Code Online (Sandbox Code Playgroud)
我期待这个输出......
Welcome 1 times
Welcome 2 times
Welcome 3 times
Run Code Online (Sandbox Code Playgroud)
......但是我明白了......
Welcome {1..3} times
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Joh*_*024 13
你没有提到你是如何执行你的脚本的,这可能会有所作为.假设我们有一个脚本:
$ cat welcome.sh
for i in {1..3}
do
echo "Welcome $i times"
done
Run Code Online (Sandbox Code Playgroud)
从bash shell中观察以下三个welcome.sh调用:
$ ps -p $$
PID TTY TIME CMD
11509 pts/25 00:00:00 bash
$ source welcome.sh
Welcome 1 times
Welcome 2 times
Welcome 3 times
$ bash welcome.sh
Welcome 1 times
Welcome 2 times
Welcome 3 times
$ sh welcome.sh
Welcome {1..3} times
Run Code Online (Sandbox Code Playgroud)
最后一个失败,因为在我的系统上,sh默认为dash,而不是bash.例如,对于任何现代的Debian/Ubuntu派生系统都是如此.
| 归档时间: |
|
| 查看次数: |
8251 次 |
| 最近记录: |