GNU ps支持BSD风格选项,UNIX风格选项和GNU长期选项。 是使用这些types之一(在脚本和命令行)比其他人更喜欢?
我从手册页得到的印象是选项样式的function不完全重叠。
一般来说,只需使用一组选项即可获得您想要的结果。
为了(其他人的)理智和可移植性,我build议坚持使用BSD风格或SysV风格的参数 – 大多数现代系统都接受这两个参数集,这样,当您为解决问题而编写的脚本在Linux上被放到一个不懂GNU风格的长期选项的系统上(全世界都不是Linux机器)。
是使用这些types之一(在脚本和命令行)比其他人更喜欢?
这在很大程度上取决于脚本应该运行的目标平台。 如果你的脚本只能运行在Linux上,那么你可以使用GNU风格的选项,如果BSD风格的选项也应该可以使用它们,最后但并非最不重要的是它们应该运行在各种unixoid系统上。 Solaris)使用UNIX风格的选项。
无论POSIX说什么。 我不是这个东西,但我会猜测使用ps的脚本将不会是非常便携的。
我想你会发现POSIX或SVR4选项更为普遍。
我通常parsinguname输出,并根据该值select正确的/ bin / ps,/ usr / bin / ps和参数。 在不支持的平台上,我只是退出,我不猜。 在linux上,我将$ PS_PERSONALITY设置为“posix”,并且在用户由于某种原因而设置的情况下取消设置$ I_WANT_A_BROKEN_PS。 这只是一个防御措施。
GNU getopt_long()风格仅在Linux上有用,即使这就是你要做的,人们对短期选项也更加熟悉。