Всем добра! Начал я писать простенький скрипт, который из "голой" системы делает заточенную под производственные нужды машину. Суть вопроса в том, что нужно добиться того, чтобы в уже существующий системный скрипт по адресу "/etc/mdm/Init/Default" можно было вставить строку с командой. Команда эта должна выполняться до команды "exit 0" в уже существующем системном скрипте. Другими словами, мне нужно вставить строку /usr/bin/x11vnc -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -auth guess
в файл /etc/mdm/Init/Default перед последней строкой. Курил man по sed, который все яростно советуют в интернетах, но поскольку регулярки не знаю, к своему случаю применить не смог. Поиск по форуму тоже не дал результата. На крайний случай можно и заменить предпоследнюю строку (всё равно пустая), но как это сделать, не уяснил. Известно, что строк всего 46 в системном скрипте. Сначала хотел сделать это силами bash`a, но теперь уже плевать, честно говоря, лишь работало, главное, чтобы не нужно было дополнительно что-либо устанавливать в системе для этого.
Нашёл половину решения данного вопроса, вот код:
sed '44 a\ \//usr/bin/x11vnc -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -auth guess' /etc/mdm/Init/Default
Происходит следующее - действительно вставляется строка сразу после 44-ой и видно это, поскольку результат команды выводится на экран. Но проблема в том, что при попытке записать вывод в текущий файл либо удаляют его содержимое (>), либо добавляют к существующему в файле вывод с экрана (>>). Как с этим бороться?