![使用和不使用“bash”命令运行 shell 脚本](https://linux22.com/image/144764/%E4%BD%BF%E7%94%A8%E5%92%8C%E4%B8%8D%E4%BD%BF%E7%94%A8%E2%80%9Cbash%E2%80%9D%E5%91%BD%E4%BB%A4%E8%BF%90%E8%A1%8C%20shell%20%E8%84%9A%E6%9C%AC.png)
我有一个脚本,当我在它前面添加“bash”时,它可以正常运行,
bash ./myscript.sh /opt/config/run.config
但当我不这样做时,它会停在下面的行并退出。
source "/opt/config/test.config"
当我在命令前面附加 bash 时没有问题。
当我设置一个新盒子时,环境变量中是否有我遗漏的内容。相同的脚本在旧机器上没有任何问题。
答案1
#!/bin/bash
解决办法:在脚本头部添加shebang
您可以在第一行强制使用您想要的外壳:#!/bin/bash
这是执行您操作的另一种方式bash ./myscript ...
#!/bin/bash
...
...
source "/opt/config/test.config"
...
...
对您的问题的可能解释
shell 中没有source
内置命令sh
(并且没有名为 的程序source
)。因此,如果您的脚本由 运行sh
,它将在命令行中失败source
。