shell中if条件语句结尾fi前面如果有&可以没有;

场景

crontab中需要新增一个自愈操作,如果进程不存在则重启进程。类似下面:

*/5 * * * * if [ -z $(ps -ef | grep filebeat | grep -v grep) ];then nohup /app/filebeat-7.7.0/filebeat -e -c /app/filebeat-7.7.0/kafka_log.yml &> /dev/null &;fi

但会报错:

-bash: syntax error near unexpected token `;'

解决方案

如果fi前面有&则可以不使用;进行隔离

*/5 * * * * if [ -z $(ps -ef | grep filebeat | grep -v grep) ];then nohup /app/filebeat-7.7.0/filebeat -e -c /app/filebeat-7.7.0/kafka_log.yml &> /dev/null & fi
posted @ 2020-06-30 12:43  Peterer~王勇  阅读(481)  评论(0编辑  收藏  举报