我尝试在 RH6 上运行 .sh 文件并出现此错误...
cannot open '' for reading: No such file or directory
我正在运行的脚本在内部引用位于同一目录中的其他脚本。我可以使用 来查看它们ls -la
。
注意:此脚本在 RH4 上运行良好。我获得了一台全新的 RH6 机器,并尝试在其上运行我的脚本。
我的abc.sh
脚本如下所述
. fox_comm_server_details.sh
. fox_comm_topic_names.sh
. fox_comm_sh_tools.sh
引用其他脚本(.sh
)文件。
当我运行我的 abc.sh (带有./abc.sh
)时它说
fox_comm_server_details.sh: cannot open [No such file or directory]
我确认目录中存在所需脚本,并且我拥有这些脚本的权限。如果我abc.sh
按如下方式更新...
. ./fox_comm_server_details.sh
. ./fox_comm_topic_names.sh
. ./fox_comm_sh_tools.sh
这次它不是抱怨文件丢失,而是抱怨下面提到的一些不同的错误......
read_fox_comm_servers_list[134]: read_fox_comm_servers_list_defaults[37]: local: not found [No such file or directory]
read_fox_comm_servers_list
并且read_fox_comm_servers_list_defaults
是定义fox_comm_sh_tools.sh
如下的函数……
function read_fox_comm_servers_list
{
read_fox_comm_servers_list_defaults
read_fox_comm_servers_list_overrides
}
function read_fox_comm_servers_list_defaults
{
local tempfile=/tmp/read_fox_comm_servers_list_defaults.$$
}
并出现上述错误。
答案1
瞎猜:请点击编辑你的问题在此链接上因为这确实很难理解。
通常,脚本(或子脚本)中的某个地方似乎没有使用文件名设置变量。
您可以''
在错误消息中注意到其中没有名称。
无法打开''进行读取:没有这样的文件或目录
您可以搜索激活错误的位置在 shell 中调试
set -x # to activate debugging
./myscript.sh # here your script invocation
set +x # to stop debugging