cat: pid.txt: 没有那个文件或目录

cat: pid.txt: No such file or directory

我有猫的问题。我想编写脚本来做与 ps -e 相同的事情。在 pid.txt 中,我有 运行 个进程的 PID。

ls /proc/ | grep -o "[0-9]" | sort -h > pid.txt

然后我想使用 $line 作为每个 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... 命令。 运行 你的两个命令都在同一个终端上 window,或者使用绝对路径,比如 /path/to/pid.txt

除了你的错误,你可能想从你的 grep 命令中删除 -o,因为它给你一个匹配的 pid 的数字。例如,当 pid 为 423 时,您得到 2。@Roadowl 也指出了这一点。

我认为您想要的是这个 - 您的所有方法都存在一些缺陷(或者您真的只想查看具有个位数 PID 的进程?):

for pid in $(ls /proc/ | grep -E '^[0-9]+$'|sort -h); do cat /proc/${pid}/cmdline; tr '\x00' '\n'; done