top_pid=$!的含义是什么 与top_pid=pgrep eef
时间: 2024-05-30 08:09:56 浏览: 10
`top_pid=$!` 的含义是将变量 `top_pid` 的值赋为当前正在运行的最近一个后台进程的 PID。
`$!` 是一个特殊的 shell 变量,用来表示最近一个在后台运行的进程的 PID。因此,`top_pid=$!` 的意思就是将 `top_pid` 的值设置为最近一个在后台运行的进程的 PID。
而 `top_pid=pgrep eef` 的含义是将变量 `top_pid` 的值赋为执行 `pgrep eef` 命令的结果。`pgrep eef` 是用来查找进程名中包含 "eef" 的进程的 PID。因此,`top_pid=pgrep eef` 的意思就是将 `top_pid` 的值设置为最近一个进程名中包含 "eef" 的进程的 PID。
相关问题
持续查询 eef 进程的 pid while true do #查询进程pid eef_pid=$(pgrep eef) if [ -n "$eef_pid" ]; then # 执行 top 命令,输出到 /tmp/test.txt top -b -d 60 -p "$eef_pid" >/tmp/test.txt # 记录top命令的进程号 top_pid=$! break fi #暂停1s后继续查询 sleep 1 done 修改代牧,使eef进程结束时,kill top命令
你可以尝试这样修改代码:
```bash
#!/bin/bash
# 查询进程pid,并不断查询直到找到为止
while true; do
eef_pid=$(pgrep eef)
if [ -n "$eef_pid" ]; then
# 执行 top 命令,输出到 /tmp/test.txt
top -b -d 60 -p "$eef_pid" >/tmp/test.txt &
top_pid=$! # 记录top命令的进程号
wait "$top_pid" # 等待top命令结束
break
fi
#暂停1s后继续查询
sleep 1
done
```
这样修改后,当eef进程结束时,会自动结束top命令。使用`wait`命令等待top命令结束的原因是,必须等待top命令执行完毕后,才能执行break退出循环,否则会导致top命令一直运行下去。
top_shell.sh脚本内容如下:#!/bin/bash # 持续查询 eef 进程的 pid while true do #查询进程pid eef_pid=$(pgrep eef) if [ -n "$pid" ]; then # 执行 top 命令,输出到 /tmp/test.txt top -b -d 60 -p "$eef_pid" >/tmp/test.txt # 记录top命令的进程号 top_pid=$! break fi #暂停1s后继续查询 sleep 1 done # 检测eef进程是否存在 while [[ -e /proc/$eef_pid ]] do sleep 1 done # 如果eef进程不存在了,就结束top命令 kill -9 $top_pid exit 如何修改能够使top_shell.sh执行完毕后自动退出
可以将最后的kill命令和exit命令删除,这样脚本就会执行完毕后自动退出。修改后的脚本内容如下:
```
#!/bin/bash
# 持续查询 eef 进程的 pid
while true
do
#查询进程pid
eef_pid=$(pgrep eef)
if [ -n "$pid" ]; then
# 执行 top 命令,输出到 /tmp/test.txt
top -b -d 60 -p "$eef_pid" >/tmp/test.txt &
# 记录top命令的进程号
top_pid=$!
break
fi
#暂停1s后继续查询
sleep 1
done
# 检测eef进程是否存在
while [[ -e /proc/$eef_pid ]]
do
sleep 1
done
# 如果eef进程不存在了,就结束top命令
kill -9 $top_pid
```
这样,脚本会在执行完毕后自动退出。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)