从文件中读取路径值,附加字符串覆盖 shell linux 中的变量
Reading pathvalue from file, appending string overwriting the variable in shell linux
我的输入文件:env.properties
JAVA_HOME=/home/Desktop/jdk1.7.0_67
Shell代码:
ENVPROPERTIES=env.properties
JAVA_HOME=$(awk -F '[ ="]+' '=="JAVA_HOME"{printf }' $ENVPROPERTIES)
echo $JAVA_HOME/bin
->将给出:/bine/Desktop/jdk1.7.0_67
甚至尝试使用 while 循环阅读::
set -f; IFS==
while read a b line
do
echo $a/bin
echo $b/bin
done < $ENVPROPERTIES
set =f; unset IFS
将给出输出::
JAVA_HOME/bin
/bine/Desktop/jdk1.7.0_67
有些方法,它覆盖 Path 的变量但使用其他值,如 JAVA_HOME.
简单。您的 env.properties
文件是一个以 CRLF 作为换行符的 DOS 文件,因此您在 JAVA_HOME
中选择了一个回车符 return。在输入文件上尝试 dos2unix
,或手动编辑它以使用 LF 作为换行符。
我的输入文件:env.properties
JAVA_HOME=/home/Desktop/jdk1.7.0_67
Shell代码:
ENVPROPERTIES=env.properties
JAVA_HOME=$(awk -F '[ ="]+' '=="JAVA_HOME"{printf }' $ENVPROPERTIES)
echo $JAVA_HOME/bin
->将给出:/bine/Desktop/jdk1.7.0_67
甚至尝试使用 while 循环阅读::
set -f; IFS==
while read a b line
do
echo $a/bin
echo $b/bin
done < $ENVPROPERTIES
set =f; unset IFS
将给出输出::
JAVA_HOME/bin
/bine/Desktop/jdk1.7.0_67
有些方法,它覆盖 Path 的变量但使用其他值,如 JAVA_HOME.
简单。您的 env.properties
文件是一个以 CRLF 作为换行符的 DOS 文件,因此您在 JAVA_HOME
中选择了一个回车符 return。在输入文件上尝试 dos2unix
,或手动编辑它以使用 LF 作为换行符。