Linux cat:pid.txt:没有这样的文件或目录
我对猫有意见。我想写和ps-e一样的脚本。在pid.txt中,我有运行进程的pidLinux cat:pid.txt:没有这样的文件或目录,linux,cat,ps,Linux,Cat,Ps,我对猫有意见。我想写和ps-e一样的脚本。在pid.txt中,我有运行进程的pid ls /proc/ | grep -o "[0-9]" | sort -h > pid.txt 然后我想使用$line作为evry PID的cmdline路径的一部分 cat pid.txt | while read line; do cat /proc/$line/cmdline; done 我也试着打圈 for id in 'ls /proc/ | grep -o "[
ls /proc/ | grep -o "[0-9]" | sort -h > pid.txt
然后我想使用$line作为evry PID的cmdline路径的一部分
cat pid.txt | while read line; do cat /proc/$line/cmdline; done
我也试着打圈
for id in 'ls /proc/ | grep -o "[0-9]\+" | sort -h'; do
cat /proc/$id/cmdline;
done
不知道我做错了什么。提前感谢。运行
cat pid.txt…
命令时,您的当前目录似乎与运行ls…
命令时不同。在同一终端窗口上运行两个命令,或使用绝对路径,如/path/to/pid.txt
除了您的错误,您可能需要从grep命令中删除
-o
,因为它为匹配的pid提供了1位数字。例如,当pid为423时得到2@Roadowl也指出了这一点。我认为您所追求的是这一点-您的所有方法都存在一些缺陷(或者您真的只是想用一位数的PID来查看流程?)
just
ls/proc/
的输出向您展示了什么…?如果您必须使用ls
,那么请使用ls-1/proc/
,不要使用grep-o
而只使用grep'[0-9]'
for pid in $(ls /proc/ | grep -E '^[0-9]+$'|sort -h); do cat /proc/${pid}/cmdline; tr '\x00' '\n'; done