gpt4 book ai didi

linux - 使用打开进程的时间保存变量

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:23 25 4
gpt4 key购买 nike

我需要一个脚本来关闭一些打开时间过长的程序。我无法将进程打开的时间(以秒为单位)保存到变量中。冲突的行是:

SECONDS_OPENED=$(ps -p $pid -o etime=) | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3  }' ;

或下面看起来相似的那个。如果我把:

echo $(ps -p $pid -o etime=) | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3  }' ; 

打印正确。我不知道为什么,在第一种情况下,我不知道为什么,SECONDS_OPENED 仍然是 null。

相关代码如下。如果我可以添加任何内容,请告诉我。

TIME_OPENED=$(ps -p $PID -o etime=) ;
SECONDS=$TIME_OPENED | awk -F: '{ print $3 }' ;
if [[ "$SECONDS" != "" ]] ;
then
SECONDS_OPENED=$(ps -p $pid -o etime=) | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }' ;
else
SECONDS_OPENED=$(ps -p $pid -o etime=) | awk -F: '{ print ($1 * 60) + $2 }' ;

最佳答案

您正在编写以下内容:

SECONDS_OPENED=$(ps -p $pid -o etime=) | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3  }' ;
^____________________^ ^
this becomes orphan

这样命令就被部分执行了。

存储所有命令ps -p ... | awk '...',只需将所有内容包装在 $() 表达式中:

SECONDS_OPENED=$(ps -p $pid -o etime= | awk -F: '{ print ...  }')
^_______________________________________________^

关于linux - 使用打开进程的时间保存变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27946110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com