我正在交互式 bash 会话中运行。我已经使用 exec 创建了一些文件描述符,我想列出我的 bash 会话的当前状态。
有没有办法列出当前打开的文件描述符?
我在 Bash 中发现了一些以$符号开头的特殊参数。例如:当我徘徊退出状态我知道$?,进程ID由 $$等
所以,我分享 这篇文章是为了了解哪些是特殊的 bash(shell)参数及其用法。
我有以下脚本
hello.sh
--------
while :
do
echo "hello"
sleep 20
done
Run Code Online (Sandbox Code Playgroud)
当我运行上面的脚本时,我得到了 2627 作为脚本的 PID
root@localhost ~]# ./hello.sh &
[1] 2627
[root@localhost ~]#
Run Code Online (Sandbox Code Playgroud)
现在,当我在另一个终端中运行 ps 命令时,我没有在输出中获取脚本名称
[root@localhost ~]# ps -ef| grep 262[7]
root 2627 1582 0 19:19 pts/1 00:00:00 -bash
root 3427 2627 0 19:52 pts/1 00:00:00 sleep 20
[root@localhost ~]#
Run Code Online (Sandbox Code Playgroud)
$$ 是我运行脚本的主 shell 的 PID。我知道在脚本中我可以输入 $$ 来获取脚本的 PID,但这不是我的意图。
一旦我在后台运行了长时间运行的脚本,并且假设我意外关闭了终端,那么有没有办法使用脚本名称或任何其他方式来 grep PID?
供参考
[root@localhost ~]# echo $$
2586
[root@localhost ~]# ps -ef| grep 262[7]
root 2627 1582 0 19:19 pts/1 …Run Code Online (Sandbox Code Playgroud)