La détection de système d'exploitation et le type de PROCESSEUR n'est pas si facile de le faire de façon portable. J'ai un sh
script d'environ 100 lignes qui fonctionne sur une très grande variété de plates-formes Unix: tout système que j'ai utilisé depuis 1988.
Les éléments clés sont
uname -p
est le type de processeur , mais il est habituellement unknown
sur le moderne, les plates-formes Unix.
uname -m
donnera le "matériel de la machine nom" sur certains systèmes Unix.
/bin/arch
, si elle existe, donne généralement le type de processeur.
uname
sans arguments le nom du système d'exploitation.
Finalement, vous aurez à réfléchir sur la distinction entre les plates-formes et des détails que vous le souhaitez. Par exemple, juste pour garder les choses simples, j'traiter i386
par i686
, tout "Pentium*
" et tout "AMD*Athlon*
" tout comme x86
.
Mon ~/.profile
exécute un script au démarrage qui définit une variable une chaîne de caractères indiquant la combinaison du PROCESSEUR et du système d'exploitation. J'ai de la plateforme bin
, man
, lib
, et include
répertoires que vous mettre en place sur cette base. Puis j'ai mis une cargaison de variables d'environnement. Ainsi, par exemple, un script shell pour reformater le courrier peut appeler, par exemple, $LIB/mailfmt
qui est une plate-forme spécifique binaire exécutable.
Si vous voulez couper les coins ronds, uname -m
et le plain - uname
vais vous dire ce que vous voulez savoir sur de nombreuses plateformes. Ajoutez d'autres choses quand vous en avez besoin. (Et l'utilisation de case
, pas nesteed if
!)