微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/bash/385435.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐