#!/bin/bash
num=$(grep -n \'^exit 0\' /etc/rc.local | awk -F ":" \'{print $1}\')
numfinal=$
numfinala=$numfinal"a"
c=$(grep -n \'^sudo myprog\' /etc/rc.local)
if ; then
sed -i "$numfinala sudo myprog" /etc/rc.local
fi
最近在做一个安装程序,安装程序中的有项功能需要在/etc/rc.local中最后一行exit 0之前添加其它命令才行。
所以做了这么个脚本,功能是在exit 0之前添加sudo myprog,下边来逐行解释下脚本的功能
第一行的#!/bin/bash功能为把此脚本的解释器设置为bash
第二行中grep -n \'^exit 0\' /etc/rc.local的功能为获取一开始为\'exit 0\'所在的全部行的内容(带行号)
awk -F ":" \'{print $1}\'的功能为,以:分隔所在的行,并获取第一个参数
grep后的结果为25:exit 0那么继续awk后的结果就是25了
第三行的功能为把行号减1,因为要在前一行的后边添加内容。
第四行的命令为在行号后边添加a,这样在sed命令中就是追加了
第五行的功能为检测是否已经添加了这行命令
第六行的功能为如果$c的值是空的,也就是没有添加过命令,那么执行下面的命令
第七行的功能就是在/etc/rc.local中指定的行号后边添加命令行。
#!/bin/bash
num=$(grep -n \'^exit 0\' /etc/rc.local | awk -F ":" \'{print $1}\')
numfinal=$
numfinala=$numfinal"a"
c=$(grep -n \'^sudo myprog\' /etc/rc.local)
if ; then
sed -i "$numfinala sudo myprog" /etc/rc.local
fi
最近在做一个安装程序,安装程序中的有项功能需要在/etc/rc.local中最后一行exit 0之前添加其它命令才行。
所以做了这么个脚本,功能是在exit 0之前添加sudo myprog,下边来逐行解释下脚本的功能
第一行的#!/bin/bash功能为把此脚本的解释器设置为bash
第二行中grep -n \'^exit 0\' /etc/rc.local的功能为获取一开始为\'exit 0\'所在的全部行的内容(带行号)
awk -F ":" \'{print $1}\'的功能为,以:分隔所在的行,并获取第一个参数
grep后的结果为25:exit 0那么继续awk后的结果就是25了
第三行的功能为把行号减1,因为要在前一行的后边添加内容。
第四行的命令为在行号后边添加a,这样在sed命令中就是追加了
第五行的功能为检测是否已经添加了这行命令
第六行的功能为如果$c的值是空的,也就是没有添加过命令,那么执行下面的命令
第七行的功能就是在/etc/rc.local中指定的行号后边添加命令行。