我正在尝试将 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
它现在可以工作了。