我想添加以下行:
nohup java -jar /mnt/fusion/nfs/labStats/LabInfoAutoLog.jar > /dev/null &
到文件/etc/rc.d/rc.local
的末尾(如果它尚不存在)。
如何从 linux 命令行执行此操作?我认为grep
或sed
会起作用,但我不熟悉其中任何一个都可以使用它。现在我使用echo
,但这只是一遍又一遍地添加它。
答案 0 :(得分:13)
假设你想要它在文件的末尾:
LINE="nohup java -jar /mnt/fusion/nfs/labStats/LabInfoAutoLog.jar > /dev/null &"
FILE=/etc/rc.d/rc.local
grep -q "$LINE" "$FILE" || echo "$LINE" >> "$FILE"
答案 1 :(得分:2)
一个选项是两个步骤:
grep -q "yourline" /path/file||sed -i '/..place../ a \the line' file
也可以用awk做,
保存数组中的所有行,如果找到该行,则在保存期间退出。否则,将END{}
块中的行添加到正确的位置。
P.S。 您没有告诉文件,在哪里添加该行。
答案 2 :(得分:0)
使用contains.sh:
./contains.sh /etc/rc.d/rc.local "LabInfoAutoLog.jar" \
"nohup java -jar /mnt/fusion/nfs/labStats/LabInfoAutoLog.jar > /dev/null &" root
如果您已经以root用户身份运行,则不需要最后一个参数。