1.shell脚本目前内容
2.要修改的配置文件目录:/opt/FounderETL/batch/etl/config
3.配置文件名称:setting.properties
4.配置文件内容:mqo_queue_name=IN.BS320.LQ
5.要求,图1中
执行BS320时,修改配置文件为:IN.BS320.LQ
执行BS366时,修改配置文件为:IN.BS366.LQ
执行BS368时,修改配置文件为:IN.BS368.LQ
6.疑问,是否可在一个脚本中实现,如不可以,拆分为三个脚本?
请各位大佬附上代码,留下邮箱,方便沟通啊?
已自行解决,谢谢各位大神的热心帮助
在你这个shell中,加上这么一句,把$0传入的参数当做值,写入setting.properties里面。
sed -i "s/\(mqo_queue_name=\)\S*/\1$0/" /opt/FounderETL/batch/etl/config/setting.properties
然后调用shell的时候,./aa.sh IN.BS320.LQ 最后这个参数按照你的需要执行的时候变化着传,不知道能满足你不
你把&&用if的形式替换,
$?可以判断程序是否正常执行,如果非0,则执行下一个命令。
每个命令执行前用楼上的方法修改一下文件。
也可以试着封装一下替换命令和你的执行命令 并传递一个参数。
sed -i 's/(mqo_queue_name=).*/\1IN.BS320.LQ/g' /opt/FounderETL/batch/etl/config/setting.properties
cmd1
if [ $? -ne 0 ];then
sed -i 's/(mqo_queue_name=).*/\1IN.BS366.LQ/g' /opt/FounderETL/batch/etl/config/setting.properties
cmd2
if [ $? -ne 0 ];then
sed -i 's/(mqo_queue_name=).*/\1IN.BS368.LQ/g' /opt/FounderETL/batch/etl/config/setting.properties
cmd3
fi
...
fi