Ответ 1
Используйте Sed
Для теста
sed -e '$i \nohup sh /bocommjava/socket.sh &\n' rc.local
Действительно изменить
sed -i -e '$i \nohup sh /bocommjava/socket.sh &\n' rc.local
Я работаю над Ubuntu 12.04 и записываю оболочку для создания среды. В оболочке мне нужно что-то изменить в rc.local.
Теперь это мой rc.local.
#!/bin/sh -e
#......
exit 0
Я хочу изменить его следующим образом:
#!/bin/sh -e
#......
nohup sh /bocommjava/socket.sh &
exit 0
Теперь я использую nano для его изменения, есть ли команда, которая может вставить строку в rc.local?
Используйте Sed
Для теста
sed -e '$i \nohup sh /bocommjava/socket.sh &\n' rc.local
Действительно изменить
sed -i -e '$i \nohup sh /bocommjava/socket.sh &\n' rc.local
Самый простой способ - использовать скриптовый язык (например: python, perl и т.д.).
#!/usr/bin/env python
import os
with open('/etc/rc.local') as fin:
with open('/etc/rc.local.TMP') as fout:
while line in fin:
if line == 'exit 0':
fout.write('nohup sh /bocommjava/socket.sh &\n')
fout.write(line)
# save original version (just in case)
os.rename('/etc/rc.local', '/etc/rc.local.jic')
os.rename('/etc/rc.loca.TMP', '/etc/rc.local')