Bash 如何列出当前正在使用的终端
我想将脚本运行的终端设置为bashshell脚本中的变量。 如tty7、pts/0或ttyacm0等 我尝试了Bash 如何列出当前正在使用的终端,bash,shell,terminal,tty,Bash,Shell,Terminal,Tty,我想将脚本运行的终端设置为bashshell脚本中的变量。 如tty7、pts/0或ttyacm0等 我尝试了printenv,sudo printenv和declare-xp 但在列表中我只看到了ssh_术语。但我知道我在/dev/tty6中运行了一个脚本 所以它并没有列出所有正在使用的终端,只是列出了当前的终端 有没有一种简单的方法列出所有正在使用的shell 更新: who-a似乎是正常运行期间使用的所有终端。 那些说old的是那些我知道还有其他脚本在运行的脚本。 但这是什么生意 j0h
printenv
,sudo printenv
和declare-xp
但在列表中我只看到了ssh_术语。但我知道我在/dev/tty6中运行了一个脚本
所以它并没有列出所有正在使用的终端,只是列出了当前的终端
有没有一种简单的方法列出所有正在使用的shell
更新:
who-a似乎是正常运行期间使用的所有终端。
那些说old的是那些我知道还有其他脚本在运行的脚本。
但这是什么生意
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
如果我正确理解了问题,您正在寻找特定脚本使用的终端,如果是这样,您可以使用以下内容:
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
要获取单个值,请执行以下命令
tty
打印连接到标准输入的终端的文件名,例如/dev/pts/51
要查看所有shell,可以使用w
或who
who-a
和who-p
应该给你更多的信息
读读这个人的文章,快速了解各种可能性。(您可以选择用户…)
更新:假设您的脚本名为
MyScript.sh
。如果添加为第1行
#!/bin/bash
您可以更改属性
chmod u+x MyScript.sh
您可以使用/MyScript.sh执行它,以后您可以直接使用它们进行搜索
pgrep -wal MyScript.sh
(它将返回进程的pid)来自man who
:who-T
添加用户的消息状态为+
,-
或?
。而who-a--all
与-b-d--login-p-r-t-t-u相同