Vai al contenuto

[Shell scripting] Sapere da terminale se mi trovo un OSX o Linux


superkappa

Messaggi raccomandati

Darwin vuol dire questo. Se uname ti dice Darwin 99 volte su 100 è OS X, per cavarti qualsiasi dubbio puoi dare

sw_vers

Dopo uname, l'output è simile a questo

ProductName:	Mac OS X
ProductVersion:	10.5.8
BuildVersion:	9L31a

Oppure

system_profiler SPSoftwareDataType

Se vuoi saperne ancora di più.

Il comando uname su Linux ti dirà Linux, uname -a ti dirà Linux e un sacco di altre cose.

:ghghgh:

PS l'utente precedente ti ha risposto, ed eri a una googlata da sapere cos'è Darwin. Non mi sembra il caso di rispondergli maleducatamente come hai fatto tu.

Link al commento
Condividi su altri siti

Con tutti i Mac Intel dove nessuno ha cancellato system_profiler, si :ghghgh:

Comunque 1: se il tuo è uno script di studio, devi SEMPRE pensare a cosa fare se un comando non va a buon fine, non sperare nella piena compatibilità. Ossia, se la risposta non è quella che ti aspetti, lo script deve "ammettere" di non essere in grado di capire con che OS ha a che fare.

Comunque 2: se vuoi che la risposta sia "Mac", puoi fare

sw_vers -productName | `echo grep -o [mM][aA][cC]`

Così hai una sola risposta, non tre.

Link al commento
Condividi su altri siti

@Ce:

Dal manuale di sw_vers mi sembra di capire che sia un comando proprio di Mac OS X, così come system_profiler, quindi direi che in linea teorica non ci sarebbe neanche bisogno di controllarne l'output.

Se il comando viene trovato è un Mac, altrimenti no.

O sbaglio?

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

@Ce:

Dal manuale di sw_vers mi sembra di capire che sia un comando proprio di Mac OS X, così come system_profiler, quindi direi che in linea teorica non ci sarebbe neanche bisogno di controllarne l'output.

Se il comando viene trovato è un Mac, altrimenti no.

O sbaglio?

Si, in effetti si, 999999 volte su un milione basta controllare l'esistenza del comando stesso -- a meno che io non crei un alias che si chiami sw_vers su un altro comando in un box Linux o, che so io, che qualche pazzo abbia preso sw_vers dal Mac e messo su una macchina Darwin o su un qualche BSD. In ogni caso credo che in uno script di studio come mi sembra questo anche fare un passaggio in più non sia una grande complicazione :lol:

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...