我想在shell腳本中添加一行(如'*/data/mod/myservice start some_parameter*'
)到/etc/rc.d/rc.local
文件。如果存在以'*/data/mod/myservice start*'
開頭的行,則將其替換爲新的。如何修改shell腳本中的rc.local?
在我的腳本中,它執行下一個python方法。
def excuteCmd(cmd):
import commands
output = commands.getoutput(cmd)
def setTask(cmd, installFlag):
print cmd, installFlag
excuteCmd('cat /etc/rc.d/rc.local > oldTask')
input = open('oldTask','r')
emptyFile = False
lines = input.readlines()
input.close()
taskNum = len(lines)
output = open('newTask', 'w')
if (taskNum == 0):
if (installFlag):
output.write(cmd + '\n')
else:
for i in range(taskNum):
if (lines[i].find(cmd) == -1):
output.write(lines[i])
if (installFlag):
output.write(cmd + '\n')
output.close()
excuteCmd('sudo cat newTask > /etc/rc.d/rc.local')
excuteCmd('rm -f oldTask')
excuteCmd('rm -f newTask')
但是,當我執行sudo cat newTask > /etc/rc.d/rc.local
,它引發以下錯誤。
-bash: /etc/rc.d/rc.local: Permission denied
另外,我認爲我是對的,sudo命令只是指在>符號之前執行的事情,而不是在之後執行的事情。 jknupp可能知道,但我沒有想到他的回答中很清楚:) –
thx,它已經解決了! – zhouzuan2k