我正在检查正在使用文件系统的进程。现在,当我进行热熔器时,将会有数百个过程。
fuser -cu /xyz
输出被截断:
393ce(xyz) 1044c(root) 1068cm(oracle) 2065ce(xyz) 3729ce(xyz)
我只想用换行符分隔文件中的进程ID,以便可以运行循环来检查进程。
答案 0 :(得分:2)
如果您只想使用id
而不是id(user)
,请不要使用-u
选项。 fuser -u
的文档:
-u,--user
将进程所有者的用户名附加到每个PID。
对我来说,fuser -c /
的格式与您的示例不同。每个ID后面都有表示访问类型的字母。这些字母被打印到stderr
上,因此我将使用2>&-
来隐藏它们。
$ fuser -c /
/: 1717rce 1754rce 1765rce 1785rce ...
$ fuser -c / 2>&-
1717 1754 1765 1785 ...
您可以使用grep
每行打印一个ID:
$ fuser -c / 2>&- | grep -o '[0-9]*'
1717
1754
1765
1785
...
但是,要运行循环,您不需要每行一个ID。用空格分隔的ID也可以正常工作:
for id in $(fuser -c / 2>&-); do
echo "id = $id"
done