在变量中捕获当前用户并将其插入到文件中

在变量中捕获当前用户并将其插入到文件中

我正在尝试将 Linux 机器上当前登录的用户捕获到一个变量中,然后使用该变量将其插入到文本文件中并替换该文件中的用户名

在文件(live.conf)中我想用“live_user=myvariable”替换“live_user=whatever”行

我的脚本如下所示:

#!/usr/bin/env bash

username=${USER:=$(/usr/bin/id -run)}

sed -i -r 's/^#?(live_user)\s*=.*/\1=$username/' live.conf

exit 0

然而结果是它替换了现在的行,如下所示:

“live_user=$username”而不是实际变量......

有人对我如何使该脚本运行有什么想法吗?

答案1

发现问题,使用单引号......我本来应该使用双引号,如下所示

#!/usr/bin/env bash

username=${USER:=$(/usr/bin/id -run)}

sed -i -r "s/^#?(live_user)\s*=.*/\1=$username" live.conf

exit 0

它现在可以工作了。

相关内容