Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在关闭终端窗口后运行特定的bashshell脚本?_Linux_Bash_Shell - Fatal编程技术网

Linux 如何在关闭终端窗口后运行特定的bashshell脚本?

Linux 如何在关闭终端窗口后运行特定的bashshell脚本?,linux,bash,shell,Linux,Bash,Shell,通过在.bashrc文件中插入脚本,我可以在创建新的终端窗口时运行该脚本。 是否有类似的方法在关闭终端后运行脚本 我只想保持当前打开的终端窗口数。如果你有其他方法,请告诉我 谢谢。您应该能够在系统上获取PTY的计数:ls/dev/pts/| wc-l这些只有在使用时才应该在该目录中处于活动状态 您可以使用这一行: ps a | awk '{print $2}' | grep -vi "tty*" | uniq | wc -l 首先使用ps获取所有进程,将其传递到awk以仅获取第二列,使用gre

通过在.bashrc文件中插入脚本,我可以在创建新的终端窗口时运行该脚本。 是否有类似的方法在关闭终端后运行脚本

我只想保持当前打开的终端窗口数。如果你有其他方法,请告诉我


谢谢。

您应该能够在系统上获取PTY的计数:
ls/dev/pts/| wc-l
这些只有在使用时才应该在该目录中处于活动状态

您可以使用这一行:

ps a | awk '{print $2}' | grep -vi "tty*" | uniq | wc -l
首先使用ps获取所有进程,将其传递到awk以仅获取第二列,使用grep忽略“tty*”,使用uniq省略多行,然后使用wc-l计算行数


这应该能奏效

你想把这个数字放在哪里?你想用这个计数做什么?正在运行的终端进程的数量(可通过
ps
pgrep
等查找)不是您感兴趣的吗?您可以使用
who
grep
nc-l
的组合。您是在计算新的终端,还是仅仅是新的外壳?如果是后者,只需在出口处设置一个陷阱,以减小压力。如果是前者,您使用什么技术来检测新的终端?在陷阱中执行类似的操作。@EtanReisner我只想在一个文件中保留打开的终端数。每当我打开一个新的终端(ALT+T..或通过其他方法)时,我希望此计数增加,每当我关闭终端时,我希望此计数减少。我可以在.bashrc文件中添加脚本时执行前者,但不能执行后一个。为什么需要在文件中执行此操作?
pgrep
当您出于某种原因需要信息时,这不是一个合理的解决方案吗?您好,我已经尝试了上面的命令,它的输出超过40个左右,但我的电脑中打开的终端数量只有4-5个。我不明白这一点。你能详细说明一下吗。