Encontrei o problema, usando aspas simples ... Eu deveria usar aspas duplas como abaixo
#!/usr/bin/env bash
username=${USER:=$(/usr/bin/id -run)}
sed -i -r "s/^#?(live_user)\s*=.*/=$username" live.conf
exit 0
funciona agora.
Eu estou tentando capturar o usuário atualmente logado na caixa linux em uma variável e, em seguida, usar a variável para inseri-lo em um arquivo de texto e substituir o nome de usuário nesse arquivo
no arquivo (live.conf) eu quero substituir a linha: "live_user = whatever" com "live_user = myvariable"
Meu script é assim:
#!/usr/bin/env bash
username=${USER:=$(/usr/bin/id -run)}
sed -i -r 's/^#?(live_user)\s*=.*/=$username/' live.conf
exit 0
no entanto, o resultado é que agora a linha substitui a seguinte:
"live_user = $ username" e não a variável real ...
Alguém tem alguma ideia de como eu posso fazer esse script funcionar?
Encontrei o problema, usando aspas simples ... Eu deveria usar aspas duplas como abaixo
#!/usr/bin/env bash
username=${USER:=$(/usr/bin/id -run)}
sed -i -r "s/^#?(live_user)\s*=.*/=$username" live.conf
exit 0
funciona agora.