linux - 为什么这个简单的脚本在内联和脚本中的行为不同?

标签 linux bash shell

我有一个简单的 bash 脚本用于文件列表:

$ cat process.sh
for i in *; do echo $i; done
$

然后我运行:

$ ./process.sh
a
b
c
d
process.sh
$

$ . ./process.sh










$

$ for i in *; do echo $i; done










$

我已阅读 Why does Bash behave differently when called as sh?这解释了内联命令使用 sh 而不是 bash - 在这种情况下通配符是非 POSIX 吗?

  • 为什么执行相同的代码时会出现不同的行为?
  • 如何使这个示例发挥作用?
  • 还有其他需要注意的情况吗?

最佳答案

已解决。原因是 for 别名不正确。感谢您的回复。

关于linux - 为什么这个简单的脚本在内联和脚本中的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29333046/

相关文章:

linux - Bash 脚本错误,应为整数表达式

Linux 桌面应用程序 : How can I check a package icon?

bash - sed 不替换行

linux - shell脚本错误: "[: too many arguments"

bash - 您将如何改进此Shell脚本以在执行每个任务之前检查错误?

bash - 如何比较十六进制数和shell中的十六进制数?

linux - 一起切割和排序

java - 用于部署 Java "Side By Side"和工具的 Linux 标准?

php - .htaccess 帮助 - 带有特殊字符的 301 重定向 URL

java - 通过bash shell编译并执行java