读取带有 $USER 变量的字符串作为文本并解析它

Yur*_*rev 3 bash

我有一些配置文件。配置文件包含字符串:LocalPath /media/$USER

我在 bash-script 中读取了配置文件:

while read var value
do
    export "$var"="$value"
done < my-conf-file.conf
Run Code Online (Sandbox Code Playgroud)

所以,我可以$LocalPath在 bash-script 中使用。它等于:/media/$USER,但我想要:/media/user1(user1 是我的用户)。

我该如何实施?

pLu*_*umo 9

read 不会从您的配置文件中扩展变量。

您可以验证:

$ read username
$USER
$ echo $username
$USER
Run Code Online (Sandbox Code Playgroud)

Stackoverflow 上的这个答案给出了解决方案。
将您的脚本更改为此以使其扩展变量:

while read var value
do
    export "$var"="$value"
done < <(envsubst < my-conf-file.conf)
Run Code Online (Sandbox Code Playgroud)