Я пытаюсь записать текущего пользователя, вошедшего в систему в окне Linux, в переменную, а затем использовать эту переменную, чтобы вставить ее в текстовый файл и заменить имя пользователя в этом файле
в файле (live.conf) я хочу заменить строку: "live_user = something" на "live_user = myvariable"
Мой сценарий выглядит так:
#!/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", а не фактическая переменная ...
У кого-нибудь есть идеи, как я могу заставить этот скрипт работать?
Найденный проблемой, с помощью одинарных кавычек... я был предназначен для использования двойных кавычек как ниже
#!/usr/bin/env bash
username=${USER:=$(/usr/bin/id -run)}
sed -i -r "s/^#?(live_user)\s*=.*/\1=$username" live.conf
exit 0
, она работает теперь.