Praticamente tutti i Linux usano versioni GNU dei comandi Unix core originali come ps
, che, come hai notato, supporta entrambe le opzioni di stile BSD e AT&T.
Poiché il tuo obiettivo dichiarato è solo la compatibilità tra Linux, ciò significa che la risposta è "Non importa".
Le varianti embedded e altre piccolissime di Linux usano in genere BusyBox invece degli strumenti GNU, ma nel caso in ps
cui ciò non influenzi davvero la risposta, poiché la versione di BusyBox è così ridotta che non può essere chiamata né AT & Tish né BSDish.
Nel tempo, altri sistemi Unixy hanno ridotto le ps
differenze di compatibilità. Mac OS X - che deriva indirettamente da BSD Unix e in generale si comporta in modo molto simile a BSD Unix - accetta sia i ps
flag AT & Tish che BSDish .
Anche Solaris / OpenIndiana si comporta in questo modo, anche se questo è meno sorprendente perché ha una storia mista di BSD e AT&T.
FreeBSD, OpenBSD e NetBSD seguono ancora esclusivamente lo stile BSD.
Più vecchia è una scatola Unix, più è probabile che accetti solo uno stile di bandiere. Puoi documentare le differenze su una simile scatola nello stesso modo in cui facciamo ora: installa gli strumenti GNU, se non sono già stati installati.
Detto questo, ci sono ancora trappole. ps
l'output generalmente non dovrebbe essere analizzato negli script che devono essere portatili, ad esempio, poiché i sistemi Unixy variano in base alle colonne disponibili, alla quantità di dati che il sistema operativo è disposto a rendere visibile agli utenti non root, ecc.
(A proposito, nota che è "BSD vs. AT&T", non "BSD vs. Unix". BSD Unix è ancora UNIX®. BSD Unix condivide una storia di sviluppo diretta con il ramo AT&T originale. Anche questa condivisione va in entrambe le direzioni : AT&T e i suoi successori hanno portato a casa le innovazioni di BSD in diversi punti della sua storia. Questa unificazione nel tempo è in parte dovuta agli sforzi di The Open Group e dei suoi predecessori.)