我正在解析一个包含
key=value
数据的文件,并将它们导出为环境变量。我的解决方案有效,但是对于特殊字符却无法正常工作,例如:
.data
VAR1=abc
VAR2=d#r3_P{os-!kblg1$we3d4xhshq7=mf$@6@3l^
script.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 ^