没有相应的文件和目录。但只有在运行shell脚本时才会这样

时间:2017-12-13 12:12:33

标签: linux bash shell ubuntu

我有一个非常基本的shell脚本

#!/bin/bash
./cod4_Inxded +set dedicated 1 +exec server.cfg +map_rotate

每当我在bash中运行./cod4_Inxded +set dedicated 1 +exec server.cfg +map_rotate时它都有效。但是当我运行shell脚本时,它说

  

./ cod4_Inxded没有这样的文件或目录

shell脚本和cod4_Inxded位于同一文件夹中。

2 个答案:

答案 0 :(得分:2)

当您从另一个目录运行shell脚本时,shell会在该目录中查找./cod4_Inxded。您可能希望通过

之类的东西来解决这个问题
#!/bin/sh
"$(dirname "$0")/cod4_Inxded" +set dedicated 1 +exec server.cfg +map_rotate

那将使用目录“$ 0”(即你怎么调用那个shell脚本),并在那里寻找cod4_Inxded。但是你仍然会得到同样的错误,所以这不可能。

然而......也许cod4_Indxded仅在从该特定目录运行时才有效?然后尝试先转到目录:

#!/bin/sh
set -e
cd "$(dirname "$0")"
./cod4_Inxded +set dedicated 1 +exec server.cfg +map_rotate

如果出现任何错误(set -e),则会中止脚本,然后将当前目录更改为脚本所在的目录,然后从同一目录运行./cod4_Inxded

答案 1 :(得分:0)

将此bash $(pwd)/cod4_Inxded.sh替换为./cod4_Inxded, 它将工作:)