检查是否从shell或其他脚本/应用程序调用了bash脚本
发布时间:2020-12-15 19:03:43 所属栏目:安全 来源:网络整理
导读:我正在编写一个bash脚本,将另一个命令的输出重定向到正确的位置.基本上,当从shell /命令行调用脚本时,我想将输出发送到STDOUT.但是,当bash脚本从其他应用程序(例如另一个bash脚本,某些应用程序,或者我的Awesome窗口管理器中的awesome-prompt插件)中执行时,我
我正在编写一个bash脚本,将另一个命令的输出重定向到正确的位置.基本上,当从shell /命令行调用脚本时,我想将输出发送到STDOUT.但是,当bash脚本从其他应用程序(例如另一个bash脚本,某些应用程序,或者我的Awesome窗口管理器中的awesome-prompt插件)中执行时,我想将输出重定向到其他地方.
在bash中是否有任何方法可以查看脚本是如何被调用的?
尝试这个:
ps -o stat= -p $PPID 如果结果包含“s”(小写),则它可以从命令行运行,也可以从脚本中反向运行.告诉那两者: ps -o stat= -p $$ 如果没有背景,将包含“”. 这是一张桌子: Run $$ $PPID CL S+ Ss CL& S Ss+ Script S+ S+ Script& S S Script(&) S Ss Script&(&) S NULL 其中(&)表示子脚本背景和&表示运行它的父脚本(这是“脚本”所指的)是后台的. CL表示命令行. NULL表示ps输出null,$PPID为“1”. 来自man ps: s is a session leader + is in the foreground process group 应该注意的是,这个答案是基于GNU ps的,但是BSD的手册页(包括OS X)表明了类似的功能. GNU ps是一种包含BSD功能的混合体. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 我的CSDN 2007 MVB(最有价值BLOG)奖杯碎了,心疼!
- 前端丨浅谈Angular2的Modules
- VIM:如何将搜索/替换命令添加到vimrc并映射到快捷方式
- NTP中间服务器(Relay Server)设置及其日常维护
- shell – 在命令行上使用Firefox获取整页屏幕截图
- scala – 为什么在Option [T]的HList上映射不起作用?
- powershell – power shell:如何发送鼠标中键?
- unix – 如何通过退出代码发出模式的信号,而不改变STDOUT
- Angular 6多库交叉依赖
- Azure Messaging-ServiceBus Messaging消息队列技术系列4-复