我有一个非常基本的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
位于同一文件夹中。
答案 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
,
它将工作:)