我有一个脚本,当我在它前面添加“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
。