【发布时间】:2017-09-15 16:19:00
【问题描述】:
我正在解析一个带有key=value 数据的文件,然后将它们导出为环境变量。我的解决方案有效,但不适用于特殊字符,例如:
.数据
VAR1=abc
VAR2=d#r3_P{os-!kblg1$we3d4xhshq7=mf$@6@3l^
脚本.sh
#!/bin/bash
while IFS="=" read -r key value; do
case "$key" in
'#'*) ;;
*)
eval "$key=\"$value\""
export $key
esac
done < .data
$ . ./script.sh
输出:
$ echo $VAR1
abc
$ echo $VAR2
d#r3_P{os-!kblg1=mf6@3l^
但应该是:d#r3_P{os-!kblg1$we3d4xhshq7=mf$@6@3l^
【问题讨论】:
-
试试单引号?这似乎对我有用。
标签: bash