在终端中执行和通过终端执行脚本文件有什么区别?

What's the difference between executing in terminal and executing a scriptfile via terminal?

我得到不同的结果 运行 以下代码在终端内与在脚本文件中。

for i in {1..5}
do  
  echo $i is a number
done

终端输出:

1 is a number
2 is a number
3 is a number
4 is a number
5 is a number

脚本输出

{1..5} is a number

添加:

#!/bin/bash

你的默认值 shell 也许是 sh,这是 sh 的另一个例子:

#!/bin/sh
max=5
for i in `seq 1 $max`
do
    echo "$i" is a number
done

嗯,这不是一个真正的答案,因为我无法说出确切的原因(不熟悉 bash,只是偶尔使用它),但不要使用 #!/bin/sh ,使用 #!/bin/bash 作为 bash 解释器。 bash 和 sh 的语法有些不同。

#!/bin/bash
for i in {1..5}
do  
  echo $i is a number
done

得到以下输出:

1 is a number
2 is a number
3 is a number
4 is a number
5 is a number