dans mon fichier .zshrc, je fixe conditionnellement ma variable de chemin Selon que je cours sur Linux ou MacOS - J'essaie maintenant de comprendre s'il y a une façon de détecter efficacement de mon .zshrc si je suis Travailler sur Linux en cours d'exécution sur WSL.
Je me demande si je peux en quelque sorte vérifier pour l'existence des fichiers / mnt / c / programme ou similaire - mais il doit y avoir une meilleure façon? P>
de mon actuel .zshrc: p> Si quelqu'un a de meilleures idées que de vérifier l'existence des fichiers / mnt / c / programme, je l'apprécierais beaucoup! < / p> p>
3 Réponses :
Merci au commentaire de Biswapiryo - j'ai proposé cette solution pour détecter WSL:
if [[ $(uname -r)] == ^*Microsoft$ ]]; then # Code goes here fi
Il y a beaucoup de moyen possible de vérifier WSL dans n'importe quel shell. La plupart des fiable em> sont les suivants:
Uname -r code> la sortie de commande. li>
/ proc / version code> fichier. li>
/ proc / sys / kernel / osrelease code> fichier. li>
OL>
#!/bin/bash
if uname -r |grep -q 'Microsoft' ; then
echo True
fi
if grep -q -i 'Microsoft' /proc/version ; then
echo True
fi
if grep -q -i 'Microsoft' /proc/sys/kernel/osrelease ; then
echo True
fi
dans WSL, il existe un fichier spécial pour vérifier l'interopérabilité appelée / proc / sys / wslinterop code> qui est un fichier spécifique WSL. Vous pouvez vérifier à l'aide de la commande suivante:
[ -f /proc/sys/fs/binfmt_misc/WSLInterop ]
Uname -r code> contient Microsoft. Github.com/kittykatt/screenfetch/blob/Master/screenfetch-dev
Merci - c'était exactement ce dont j'avais besoin - sauté une réponse à ma propre question ci-dessous.