0

我正在编写一个可移植的 shell 脚本来获取系统进程信息,我需要进程 ID、命令、pwdx (linux)。在 linux 上,我可以按如下方式获取此信息.. 但它在所有其他 unix 风格上都失败了。

 $ ps -awwwwwww -u <userid> -o pid,cmd|grep -i <filter_term> | egrep -v grep
 $ pwdx <pid>

我应该在 AIX、HPUX 和 Solaris 上使用什么来获取类似的信息,或者有任何跨平台命令

在 Solaris 上,我尝试过 /usr/ucb/ps 但它支持格式化输出和 lsof 等效于 pwdx 但这也没有显示我需要什么

4

3 回答 3

2

在 Solaris 上,我尝试过 /usr/ucb/ps 但它支持格式化输出:

格式化输出有什么问题?

和 lsof 等效于 pwdx 但这也没有显示我需要什么。

那没有意义。pwdx是 Solaris 本机命令,甚至最初是在该操作系统上实现的。

于 2012-04-19T06:19:53.017 回答
0

Linux!= Unix。同时,命令并不总是相同的,例如 GNU ps 不像 Solaris ps 或 HP-UX ps 等。在某些情况下,供应商 Unix 风格提供了一个“兼容性二进制文件”,就像那些隐藏在Solaris 上的 /usr/ucb。但最终您需要查看每个版本的手册页并查看输出格式选项。

编辑。这通常适用于所有命令。包括grep、egrep等。

于 2012-05-23T01:21:32.457 回答
0

要显示完整的命令名称,请使用

ps -eo comm

这将显示已运行的命令。(ps 来自我的 Solaris 系统 5.11 上的 /usr/bin)

于 2018-09-06T17:39:51.427 回答