capturando o usuário atual na variável e inserindo-o no arquivo [duplicado]

1

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?

    
por Jacque Montague Raymer 14.03.2017 / 02:48

1 resposta

0

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.

    
por Jacque Montague Raymer 14.03.2017 / 03:25