![]() |
1
23
试试这个:
如果结果包含“s”(小写),则它要么是从命令行运行,要么是从脚本中后台运行。要区分这两种情况:
将包含一个“+”如果它不是背景。 这是一张桌子:
其中,(&)表示子脚本是background,而&表示运行它的父脚本(即“script”所指的)是background。CL表示命令行。NULL意味着ps输出一个NULL
从
应该注意的是,这个答案是基于GNU的
|
![]() |
2
8
我相信你真正想知道的是stdout是否是一个终端。如果是这样,那么您可以(几乎)安全地假设它是一个交互式会话请尝试以下代码片段:
这个
编辑: 请注意,如果您将输出管道传输到其他程序,这将指示非终端stdout。在这种情况下,您可能需要一个更通用的条件,该条件还将检查标准输入(文件描述符0):
|
![]() |
3
1
这是我从另一篇关于这个主题的文章中改编的一个函数。它将所有父进程与
当然,在需要之前,首先需要在没有任何参数的情况下调用函数
|
![]() |
4
-1
你可以用$PPID 有点像
这将将父变量设置为父进程名,然后将其打印到屏幕上。 然后,可以根据父元的值设置一些if语句。 高温高压 |
![]() |
w113msh · 提取未设置脚本的变量名 1 年前 |
![]() |
deep · 分析csv文件以将详细信息添加到xml文件 1 年前 |
|
c0d3rbox · 如何在Python脚本中加载yaml文件? 1 年前 |
![]() |
Community wiki · Bash脚本创建到共享库的符号链接 1 年前 |