
У меня есть такой файл конфигурации:
# Default LIST="nil"
LIST="element1 element2 element3"
Какой самый простой способ изменить LIST из скрипта оболочки?
решение1
Использовать sed
:
sed -i 's/LIST\=.*/LIST="element4 element5"/' config_file
Если вы хотите, чтобы СПИСОК обновлялся только в том случае, если он не прокомментирован, добавьте ^
(начало строки):
sed -i 's/^LIST\=.*/LIST="element4 element5"/' config_file
решение2
Тот же ответ, что и принятый, но готовый к использованию всценарий. Если кому-то это будет полезно:
#! /bin/bash
# (GPL3+) Alberto Salvia Novella (es20490446e)
modifyVariableInFile () {
variable="${1}"
content="${2}"
file="${3}"
if [ ! -f "${file}" ]; then
echo "modifyVariableInFile: file doesn't exist: ${file}"
exit 1
fi
sed -i "s/^${variable}\=.*/${variable}=\"${content}\"/" "${file}"
}
modifyVariableInFile ${@}