【发布时间】:2016-09-28 20:59:43
【问题描述】:
我需要使用 bash 脚本通过终端显示某些信息。 我需要显示的信息是 UID、PID、PPID、STATUS、CMD。 好的,所以我已经这样做了,但是我在识别和印刷方面存在某些问题。 我需要这样显示:
UID PID PPID STATUS CMD
root 1 0 Sleeping /sbin/init
但是用我的代码我得到了这个:
UID PID PPID STATUS CMD
root
1 0 (sleeping) /sbin/init
这实际上是我的代码:
echo "UID PID PPID STATUS CMD"
for i in /proc/*; do
getent passwd `cat $i/status|grep "^Uid"`| cut -d: -f1|head -1
cat $i/status|grep "^Pid"|awk '{printf "%-9s",$2}'
cat $i/status|grep "^PPid"|awk '{printf "%-9s",$2}'
cat $i/status|grep "^State"|awk '{printf"%-9s",$3}'
cat $i/cmdline|awk '{printf " %-25s",$1}'
echo '\n'
done
使用此代码,我还会收到很多“不是目录”错误。 我是新手,所以我需要大量帮助:( 注意:我不能使用 ps 命令
【问题讨论】:
-
检查
man ps... -
作为限制,我不能使用 -ps
-
@RodrigoAlejandroMuozInostro 为什么会有这么奇怪的要求?
-
因为我需要用我的代码创建一个 ps 命令
-
所以,你应该学习C编程语言
标签: linux bash ubuntu terminal sh