如何列出当前使用的终端

时间:2014-06-03 12:00:15

标签: bash shell terminal tty

我想将我的脚本运行的终端设置为bash shell脚本中的变量。 如在tty7,或pts / 0或ttyacm0等...

我尝试了printenvsudo printenvdeclare -xp 但是在列表中我只看到了ssh_term。但我知道我在/ dev / tty6中运行了一个脚本 所以它没有列出所有正在使用的终端,只列出当前的终端。

是否有一种简单的方法可以列出所有正在使用的shell?

更新: 谁 - 看起来像正常运行中使用的所有终端。 那些说旧的是那些我知道有其他脚本运行的人。 但这是什么+/-业务?

j0h      - tty6         2014-05-16 07:50  old         9593
LOGIN      tty1         2014-05-15 19:10              1675 id=1
j0h      + tty7         2014-05-15 19:13  old         1936

2 个答案:

答案 0 :(得分:1)

如果我已正确理解问题,您正在寻找特定脚本使用的终端,如果是这样,您可以使用以下内容:

x=($(ps aux | grep script_name)| awk '{print $7}') #you may have to check which column to filter

脚本使用的所有终端都在数组x中,然后你可以

for i in ${x[*]}
do
echo $i
done

获取个人价值

答案 1 :(得分:1)

要获取您正在使用的当前shell,可以使用命令

tty

打印连接到标准输入的终端的文件名,例如/dev/pts/51

要查看所有shell,您可以使用wwho

who -awho -p应该为您提供更多信息......

阅读该男子,快速了解可能性。 (您可以选择用户......)

更新:
我们假设您的脚本名为MyScript.sh。如果您添加为第1行

#!/bin/bash  

您更改了属性

chmod u+x MyScript.sh

然后您使用./MyScript.sh执行它,之后您可以使用

直接搜索它们
pgrep -wal MyScript.sh 

(它将返回进程的pid)