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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...