У меня есть следующая проблема: в скрипте, который не должен выполняться как root, я должен написать строку для вновь созданного, пустого файла. Этот файл находится в/etc, поэтому мне нужно получить повышенные права на запись.Как добавить строку в пустой файл с помощью sed, но не echo?
Создание файла прост:
sudo touch /etc/myfile
Теперь, используя только эхо для записи в файл, например так не работает ...
sudo echo "something" > /etc/myfile
... потому что только первый часть команды (echo) выполняется с помощью sudo, но не перенаправление в файл.
Раньше я использовал что-то вроде этого ...
sudo sed -i -e "\$aInsert this" /etc/differntfile
... добавить в конец файла, который работал, потому что файл не был пуст. Но поскольку sed работает на основе линии, он ничего не делает, файл остается полностью пустым.
Любые предложения? Есть ли способ сделать это с эхом так или иначе? Любое специальное выражение sed? Любые другие инструменты, которые я мог бы использовать?
Эта проблема устраняет проблему. Короткий и прямой ++ – sjsam
Отлично, это намного проще, чем я ожидал. –
Если вы используете переменные в команде, выполняемой с помощью * sudo sh -c *, вам нужно использовать двойные кавычки. –