захват текущего пользователя в переменной и вставка его в файл [дубликат]

Я пытаюсь записать текущего пользователя, вошедшего в систему в окне 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", а не фактическая переменная ...

У кого-нибудь есть идеи, как я могу заставить этот скрипт работать?

1
задан 14 March 2017 в 04:48

1 ответ

Найденный проблемой, с помощью одинарных кавычек... я был предназначен для использования двойных кавычек как ниже

#!/usr/bin/env bash

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

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

exit 0

, она работает теперь.

0
ответ дан 8 December 2019 в 06:15

Другие вопросы по тегам:

Похожие вопросы: