unix – sh脚本如何确定它是作为cron作业启动而不是交互式还是后台作业?

前端之家收集整理的这篇文章主要介绍了unix – sh脚本如何确定它是作为cron作业启动而不是交互式还是后台作业?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想对cron和交互式使用相同的脚本,只是想知道是否有一种通用的方式在UNIX / Linux系统上轻松做出这个决定.
您可以尝试使用以下内容返回父进程的名称: –
ps -ocommand= -p $PPID | awk -F/ '{print $NF}' | awk '{print $1}'

对我来说,当我以交互方式运行时,这个返回了konsole.

或者您可以在某些逻辑中编写脚本以处理情况.

while getopts cm opt
do
case $opt in
        c)
                ##  Do crontask 
        ;;
        m)
                ##  Do manual
        ;;
        esac
done

现在,在执行脚本时,您可以将选项作为属性传递,如下所示: –

/use/local/bin/example.sh -m
/use/local/bin/example.sh -c

猜你在找的Bash相关文章