在linux中使用连字符的pgrep程序?
如何表示包含连字符的程序?像贝娄一样考虑情况 c源文件名,在linux中使用连字符的pgrep程序?,grep,Grep,如何表示包含连字符的程序?像贝娄一样考虑情况 c源文件名,程序包含hypen.c: #include <stdio.h> int main(int argc, char *argv[]) { getchar(); return 0; } 更新: 这不是连字符的问题,而是命令行的长度问题 看 多亏了@user5631389,我想你已经回答了你自己的问题。pgrep-f是实现这一点的正确方法。如果得到两个结果,则有两个同名的正在运行的进程。您可以使用pgrep-fa查看
程序包含hypen.c
:
#include <stdio.h>
int main(int argc, char *argv[])
{
getchar();
return 0;
}
更新:
这不是连字符的问题,而是命令行的长度问题
看
多亏了@user5631389,我想你已经回答了你自己的问题。pgrep-f是实现这一点的正确方法。如果得到两个结果,则有两个同名的正在运行的进程。您可以使用pgrep-fa查看整个命令行。例如:
$ pgrep unity-scope-loader
$ pgrep unity-scope-loade
$ pgrep unity-scope-load
$ pgrep unity-scope-loa
9489
$ pgrep -f unity-scope-loader
9489
$ pgrep -fa unity-scope-loader
9489 /usr/bin/unity-scope-loader applications/applications.scope applications/scopes.scope commands.scope
$ awk '$11~/unity-scope-loader/{print $2}' <(ps aux)
9489
如果没有-f,您将只能根据需要使用一定数量的字符。例如:
$ pgrep unity-scope-loader
$ pgrep unity-scope-loade
$ pgrep unity-scope-load
$ pgrep unity-scope-loa
9489
$ pgrep -f unity-scope-loader
9489
$ pgrep -fa unity-scope-loader
9489 /usr/bin/unity-scope-loader applications/applications.scope applications/scopes.scope commands.scope
$ awk '$11~/unity-scope-loader/{print $2}' <(ps aux)
9489
$pgrep统一作用域加载器
$pgrep统一作用域加载
$pgrep统一作用域加载
$pgrep统一范围loa
9489
$pgrep-f统一作用域加载器
9489
$pgrep-fa统一作用域加载器
9489/usr/bin/unity scope loader applications/applications.scope applications/scopes.scope commands.scope
$awk'$11~/unity scope loader/{print$2}'两个正在运行的进程:/program包含连字符
和vim program包含连字符.c
;似乎不是连字符的问题,而是命令行的长度?和cat/proc/xxx/comm
我得到的程序包含
,正好是15个字符。与1234567890123456问题相同。是的,这是正确的。不带-f选项的pgrep以将文件名截断为15个字符的方式查找进程。我不相信这与进程名中的连字符有任何关系。谢谢,我正在尝试在我的嵌入式linux上使用别名pgrep='busybox pgrep'
,因为busybox
知道我想要什么,而且busybox
总是在那里。我不想检查哪个pgrep
正在使用(busybox
或procps ng
)。