调用setDomainEnv.sh提示文件不存在,如何在Bash脚本中正确调用?
解决Bash脚本调用setDomainEnv.sh时的"No such file or directory"错误
出现这个错误大概率是路径问题或者文件本身的问题,给你几个可行的解决方向:
修正相对路径的问题
你当前用的./path/bin/setDomainEnv.sh是相对执行脚本时的工作目录,不是脚本自身所在的目录。如果在不同目录执行脚本,这个路径就会失效。可以改成用脚本自身的绝对路径来拼接目标文件路径:#!/bin/bash # 获取当前脚本所在的绝对目录 SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd) # 拼接并加载setDomainEnv.sh . "$SCRIPT_DIR/path/bin/setDomainEnv.sh"这样不管你在哪个目录运行脚本,都能精准找到目标文件。
确认文件真实存在
手动到你指定的路径下检查setDomainEnv.sh是否存在,注意Linux系统区分大小写,别把文件名写错了。另外如果路径里有空格或特殊字符,要记得用引号包裹路径。检查文件权限
就算文件存在,也要确保你的用户有读取和执行该文件的权限。可以用ls -l 目标文件路径查看权限,如果权限不足,执行chmod +x 目标文件路径(必要时加sudo)。
如果你的setDomainEnv.sh是WebLogic域下的脚本,也可以直接通过设置DOMAIN_HOME环境变量来调用:
#!/bin/bash export DOMAIN_HOME="/实际的域目录路径" . "$DOMAIN_HOME/bin/setDomainEnv.sh"
内容的提问来源于stack exchange,提问作者Edson Martins
相关产品推荐
相关产品推荐

