Vai al contenuto


Archived

Questa discussione è archiviata e chiusa a future risposte.

superkappa

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

Recommended Posts



é facile scrivere

man uname

per la cronaca:

scrive la stessa cosa se faccio

echo $OSTYPE

Mi risponde sempre darwin.*

Che cavolo è darwin?

Ripeto la domanda:

Come faccio a sapere se sono su mac, linux od un altro OS?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

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.

Condividi questo messaggio


Link di questo messaggio
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.

Condividi questo messaggio


Link di questo messaggio
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?

Condividi questo messaggio


Link di questo messaggio
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:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

×