Habituellement, uname
et ses différentes options vous indiqueront dans quel environnement vous évoluez :
pax> uname -a
CYGWIN_NT-5.1 IBM-L3F3936 1.5.25(0.156/4/2) 2008-06-12 19:34 i686 Cygwin
pax> uname -s
CYGWIN_NT-5.1
Et, selon le très utile schot
(dans les commentaires), uname -s
donne Darwin
pour OSX et Linux
pour Linux, alors que mon Cygwin donne CYGWIN_NT-5.1
. Mais vous devrez peut-être expérimenter toutes sortes de versions différentes.
Ainsi, le bash
Le code permettant d'effectuer une telle vérification serait du type suivant :
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*) machine=Linux;;
Darwin*) machine=Mac;;
CYGWIN*) machine=Cygwin;;
MINGW*) machine=MinGw;;
*) machine="UNKNOWN:${unameOut}"
esac
echo ${machine}
Notez que je suppose ici que vous exécutez réellement sur CygWin (le bash
) donc les chemins devraient déjà être correctement configurés. Comme le note un commentateur, vous pouvez exécuter la commande bash
programme, en passant le script, de cmd
et cela peut avoir pour conséquence que les chemins ne sont pas configurés comme il se doit.
Si vous sont En faisant cela, il est de votre responsabilité de vous assurer que les bons exécutables (c'est-à-dire ceux de CygWin) sont appelés, éventuellement en modifiant le chemin au préalable ou en spécifiant complètement l'emplacement des exécutables (par exemple, /c/cygwin/bin/uname
).