我正在尝试创建自己的 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 之间移植(不仅是bash
和zsh
,它有$SECONDS
)。