![Как передать вывод команды в sed](https://rvso.com/image/1419622/%D0%9A%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B%20%D0%B2%20sed.png)
Мойседкоманда в#Обновить ключ в файле конфигурации. не получает содержимое переменной$ПОЛУЧИТЬ Кто-нибудь Помогите мне?
# Get key from output of the website.
GETKEY=`wget https://www.badips.com/get/key -qO - | awk {'print $9'} | cut -d ":" -f3 | cut -d "}" -f1 | sed 's/\"//g'`
if [ $? -eq 0 ]
then
# Update key in config file.
sed -i 's/^\(KEY\s*=\s*\).*$/\1$GETKEY/' Config
fi
решение1
Переменные не подставляются внутри одинарных кавычек. Используйте:
sed -ri "s/^(KEY\\s*=\\s*).*$/\\1$GETKEY/" Config
Я использовал -r
, чтобы убрать необходимость экранирования скобок, но другие обратные косые черты должны быть экранированы в одинарных кавычках. В противном случае вы можете смешивать кавычки:
sed -ri 's/^(KEY\s*=\s*).*$/\1'"$GETKEY/" Config