我想将我的脚本运行的终端设置为bash shell脚本中的变量。 如在tty7,或pts / 0或ttyacm0等...
我尝试了printenv
,sudo printenv
和declare -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
答案 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,您可以使用w
或who
。
who -a
和who -p
应该为您提供更多信息......
阅读该男子,快速了解可能性。 (您可以选择用户......)
更新:
我们假设您的脚本名为MyScript.sh
。如果您添加为第1行
#!/bin/bash
您更改了属性
chmod u+x MyScript.sh
然后您使用./MyScript.sh
执行它,之后您可以使用
pgrep -wal MyScript.sh
(它将返回进程的pid)