pgrep命令不';不显示bash脚本
当我运行一个简单的bash脚本时,比如说pgrep命令不';不显示bash脚本,bash,Bash,当我运行一个简单的bash脚本时,比如说myscript.sh #!/bin/bash sleep 30 从终端,然后执行pgrep myscript.sh我没有得到任何结果。为什么?您可能正在这样做: pgrep myscript.sh 这不会显示您正在运行的进程,因为正在运行脚本的是/bin/bash 你应该做: pgrep -fl myscript.sh 列出您的流程 根据man pgrep: -f在进程的完整参数字符串中的任何位置匹配模式,而不仅仅是可执行文件名 您正在运行bash
myscript.sh
#!/bin/bash
sleep 30
从终端,然后执行
pgrep myscript.sh
我没有得到任何结果。为什么?您可能正在这样做:
pgrep myscript.sh
这不会显示您正在运行的进程,因为正在运行脚本的是/bin/bash
你应该做:
pgrep -fl myscript.sh
列出您的流程
根据man pgrep
:
-f
在进程的完整参数字符串中的任何位置匹配模式,而不仅仅是可执行文件名
您正在运行bash脚本,需要使用-f标志,请检查 检查您的计算机中是否安装了pgrep。如果没有找到安装该实用程序的命令,只需执行
manpgrep
pgrep查看当前运行的进程,并列出与标准输出匹配的进程ID。所有标准都必须匹配
用法示例:
pgrep name | xargs kill
如果使用pgrep name | kill,则pgrep name的输出将馈送到kill的stdin。因为kill不从stdin读取参数,所以这不起作用
使用xargs,它将从stdin为kill构建参数。例如:
$ pgrep bash | xargs echo
5514 22298 23079