在bash脚本中打印环境变量



我正在尝试编写简单的shell脚本来解析属性文件并根据这些值计算另一个字符串。

dev.properties

com.global.jdbcUrl=${local_jdbcUrl}
<<p>环境变量/strong>
export local_jdbcUrl="jdbc:mysql://localhost:3306/db_0?autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true"

bash文件:

#!/bin/bash
file="./dev.properties"
function prop {
grep "${1}" ${file} | cut -d'=' -f2
}
text="global"
keys="jdbcUrl"
IFS=','
read -a strarr <<< "$text"
read -a keysarr <<< "$keys"
echo "There are ${#strarr[*]} words in the text.n"
echo "There are ${#keysarr[*]} words in the text. nn"
for val in "${strarr[@]}";
do
for refs in "${keysarr[@]}";
do
tmp="$val.$refs"
printf "name : $tmpnn"
valu="$(prop $tmp)"
printf "value : $valu n"
printenv local_jdbcUrl
done
done

脚本输出:

There are 1 words in the text.n
There are 1 words in the text. nn
name : global.jdbcUrl
value : ${local_jdbcUrl} 
jdbc:mysql://localhost:3306/db_0?autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true

我正在使用shell脚本运行迁移,因此要形成迁移字符串命令,我需要在字符串中具有实际的环境变量值。环境变量替换没有发生。不知道这里出了什么问题。有人可以帮助我新的bash脚本。我检查了shell脚本中的环境值,它工作得很好,只有在bash脚本中我才得到这个错误。

可能是envsubst

$ cat file
${HOME} is where the heart is
$ cat file | envsubst
/home/glennj is where the heart is

相关内容

  • 没有找到相关文章