当我输入“./”后跟文件名时,如何找出哪个程序正在执行它?例如,我有一些脚本,如“derp.sh”,如果我输入“/bin/bash derp.sh”,它们就会执行,但如果我输入“./derp.sh”,它们就会失败(它们有一个 shebang)。
我认为这就是正在发生的事情,因为我一直在尝试“安装”一些东西,但也遇到了如下错误:
/bin/sh: 1: ./version.sh: Permission denied
make: *** [libavutil/ffversion.h] Error 126
这也可能是造成 bash 不匹配的原因。
答案1
您必须通过添加一个来告诉 bash 使用哪个解释器舍邦在脚本的第一行。
例如,如果它是一个 bash 脚本,则添加
#!/usr/bin/bash
在哪里可以找到bash
可以通过以下方式打印的可执行文件
which bash
对于 Python
#!/usr/bin/python2.7
同样如此;which python2.7
将打印可执行文件的路径。如果您想运行 python (2.7!) 脚本。