Ubuntu 12.04 LTS 使用 bash。
我尝试使用运行时从 Java 程序运行 ps 命令并得到了一些意外的输出。
经过仔细检查,我意识到它是以下输出:
ps --deselect
这让我相信 ps 执行时启用了一些默认标志
当我刚输入
ps
在命令行中。
这些旗帜是什么?还是我搞错了?
答案1
ps
PS_PERSONALITY
在选择如何显示结果时,会遵循环境变量(在手册页中记录)。我的手册页中的值是:
PERSONALITY
390 like the OS/390 OpenEdition ps
aix like AIX ps
bsd like FreeBSD ps (totally non-standard)
compaq like Digital Unix ps
debian like the old Debian ps
digital like Tru64 (was Digital Unix, was OSF/1) ps
gnu like the old Debian ps
hp like HP-UX ps
hpux like HP-UX ps
irix like Irix ps
linux ***** recommended *****
old like the original Linux ps (totally non-standard)
os390 like OS/390 Open Edition ps
posix standard
s390 like OS/390 Open Edition ps
sco like SCO ps
sgi like Irix ps
solaris2 like Solaris 2+ (SunOS 5) ps
sunos4 like SunOS 4 (Solaris 1) ps (totally non-standard)
svr4 standard
sysv standard
tru64 like Tru64 (was Digital Unix, was OSF/1) ps
unix standard
unix95 standard
unix98 standard
你可能想尝试所有这些 :-),使用
PS_PERSONALITY=digital ps
最有可能的是,当您在程序内部执行时,与在交互式 shell 中运行它时(可能使用自定义设置等)相比,环境变量的值PS_PERSONALITY
是不同的(或者可能不存在) 。ps
.bashrc