查找终端会话的长度

查找终端会话的长度

我正在尝试创建自己的 bash 脚本来输出当前终端会话的长度,以及使用所述长度执行各种其他操作。

我遇到的问题是在脚本中......

#!/bin/bash

SESSIONLENGTH=$(echo $SECONDS)
echo $SESSIONLENGTH

...创建了 bash shell 的另一个实例(或者至少我相信这就是正在发生的情况),其中它自己的$SECONDS值被分配给$SESSIONLENGTH而不是$SECONDS正在运行脚本的 shell 的值。

所以我的问题是,如何在脚本中返回当前会话的长度?

答案1

你可以做

source /path/to/script

或者

. /path/to/script

在当前会话中运行脚本中的命令bash。注意:在这种情况下,不要exit从脚本中调用,因为它将完成当前会话(如果终端仿真器在 shell 退出时关闭,则可能会在您看到时间之前)。

另一方面,如果您只是测量会话时间,您也可以这样做:

time bash

一旦您退出该bash会话,您在其中花费的时间就会被打印出来。它可以在多个 shell 之间移植(不仅是bashzsh,它有$SECONDS)。

相关内容