Usando sed: se insertará al final de la línea. También puede pasar variables como siempre, por supuesto.
grep -qxF "port=9033" $light.conf
if [ $? -ne 0 ]; then
sed -i "$ a port=9033" $light.conf
else
echo "port=9033 already added"
fi
Usando oneliner sed
grep -qxF "port=9033" $lightconf || sed -i "$ a port=9033" $lightconf
Usar echo puede no funcionar bajo root, pero funcionará así. Pero no le permitirá automatizar las cosas si está buscando hacerlo, ya que podría solicitar una contraseña.
Tuve un problema cuando intentaba editar desde la raíz para un usuario en particular. Solo agregar el $username
antes fue una solución para mí.
grep -qxF "port=9033" light.conf
if [ $? -ne 0 ]; then
sudo -u $user_name echo "port=9033" >> light.conf
else
echo "already there"
fi
crudini
podría ser una buena opción (pero aún no para lighthttpd)