Praticamente todos os Linux usam versões GNU dos comandos originais do Unix ps
, como o que, como você observou, suporta as opções de estilo BSD e AT&T.
Como seu objetivo declarado é apenas a compatibilidade entre Linux, isso significa que a resposta é: "Não importa".
Embutidas e outras variantes muito pequenas do Linux geralmente usam o BusyBox em vez das ferramentas GNU, mas, no caso ps
, isso realmente não afeta a resposta, já que a versão do BusyBox é tão simplificada que não pode ser chamada de AT & Tish nem BSDish.
Com o tempo, outros sistemas Unixy reduziram as ps
diferenças de compatibilidade. O Mac OS X - que deriva indiretamente do BSD Unix e, em geral, se comporta de maneira mais semelhante ao BSD Unix ainda - aceita os ps
sinalizadores AT & Tish e BSDish .
O Solaris / OpenIndiana também se comporta dessa maneira, embora isso seja menos surpreendente porque tem uma história mista de BSD e AT&T.
O FreeBSD, o OpenBSD e o NetBSD ainda seguem exclusivamente o estilo BSD.
Quanto mais antiga for uma caixa Unix, maior a probabilidade de ela aceitar apenas um estilo de sinalizadores. Você pode encobrir as diferenças nessa caixa da mesma maneira que fazemos agora: instale as ferramentas GNU, se elas ainda não estiverem instaladas.
Dito isto, ainda existem armadilhas. ps
a saída geralmente não deve ser analisada em scripts que precisam ser portáveis, por exemplo, uma vez que os sistemas Unixy variam em quais colunas estão disponíveis, a quantidade de dados que o sistema operacional está disposto a tornar visível para usuários não-root etc.
(A propósito, observe que é "BSD vs. AT&T", não "BSD vs. Unix". O BSD Unix ainda é o UNIX®. O BSD Unix compartilha um histórico de desenvolvimento direto com o ramo original da AT&T. Esse compartilhamento também ocorre nos dois sentidos : A AT&T e seus sucessores trouxeram as inovações da BSD de volta para casa em vários pontos de sua história. Essa unificação ao longo do tempo se deve em parte aos esforços do The Open Group e de seus antecessores.)
ps
estilos de argumento, qual deles (BSD ou Unix) é POSIX, então?Em caso de dúvida, use a sintaxe SysV. Isso foi acordado por muitas pessoas e é o padrão de fato. O material do BSD data da pré-história ou faz parte de algum ramo divergente (o SysV foi um esforço para acabar com as guerras do Unix, colocando todas as linhas díspares sob o mesmo teto).
fonte