Используя sed: Он будет вставлен в конце строки. Конечно, вы также можете передавать переменные как обычно.
grep -qxF "port=9033" $light.conf
if [ $? -ne 0 ]; then
sed -i "$ a port=9033" $light.conf
else
echo "port=9033 already added"
fi
Использование oneliner sed
grep -qxF "port=9033" $lightconf || sed -i "$ a port=9033" $lightconf
Использование echo может не работать под root, но будет работать так. Но это не позволит вам автоматизировать процесс, если вы хотите это сделать, поскольку он может запросить пароль.
У меня была проблема, когда я пытался редактировать из корня для определенного пользователя. Просто добавление $username
до этого было для меня исправлением.
grep -qxF "port=9033" light.conf
if [ $? -ne 0 ]; then
sudo -u $user_name echo "port=9033" >> light.conf
else
echo "already there"
fi