我想从一个文件中获取一些变量,然后在其他shell文件中使用它。为此,我创建两个文件如下。
我有两个sh文件。
- setenv.sh
- setup.sh
setenv.sh的内容:
#!bin/bash
export JAVA_HOME=/home/jre
setup.sh的内容:
. ./setenv.sh
echo $JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
java Copy
当我运行setup.sh文件时,它给出以下输出:
/home/jre
java not found
所以您能帮我解决这个问题。谢谢
请检查两个脚本的Shebang:正如Walter A所说,请从第一行中删除开始空间,然后检查每个文件的EndoFline(LF与CRLF)(DOS2Unix工具)可以帮助)。
此外,要直接从$路径条目中使用Java可执行文件,也许您还需要添加Setup.sh
脚本的Shebang。
我认为这是问题: . ./setenv.sh
./setenv.sh
路径相对于当前目录,而不是相对于设置。SH脚本本身。
在setup.sh中,请使用绝对路径参考setenv.sh或使用 $($(basedir $0)/setenv.sh)