J'ai cette ligne dans mon .bashrc
et j'aimerais savoir ce que cela signifie exactement
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
$-
signifie "drapeaux actuels".echo $-
renvoie "himBH". Ce sont tous des défauts.[[ $- != *i* ]] && return
fait ce qu’il est dit ci-dessus dans un commentaire: il vérifie si le drapeau interactif est activé. Les [[et]] en font un booléen afin qu'il se termine par un "vrai" ou un "faux". "false && return" le fait passer "true && return" lui permet d'exécuter le retour.Les drapeaux par défaut expliqués plus en détail:
h est pour "hash all": ceci indique à bash de se rappeler l'emplacement des commandes qu'il a trouvées lors de l'interrogation de votre PATH.
i est pour "interactif": entrer une entrée et récupérer une sortie.
m est pour "moniteur": cela permet de contrôler le travail
B est pour "attelle élargir". Cela vous permet d'utiliser l'extension
H est pour "histoire élargir". C’est ce qui vous permet de relancer une commande de votre historique en préfacant son numéro avec un point d’exclamation.
Au fait. J'ai ...
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
Fondamentalement, la même chose, mais plus facile à lire, je suppose.
En gros, cela signifie "Si les drapeaux du shell ne contiennent pas de lettre minuscule i, arrêtez la fonction/le script ici".
[[ ]]
dénote une expression conditionnelle en bash
$-
signifie les drapeaux Shell. Il contiendra "i" si le shell est interactif (c.-à-d. Vous pouvez taper des commandes, par opposition à, il exécute un script)
!=
signifie simplement "pas égal à".
*i*
est un modèle générique qui correspond à tout ce qui contient "i"
return
sans aucun argument signifie simplement arrêter l'exécution de la fonction ou du script en cours.
&&
est l'opérateur logique ET. L'expression à droite, dans ce cas return
name__, ne sera évaluée (exécutée) que si l'expression à gauche est true. Donc, dans de nombreux langages de programmation, a && b
est un raccourci pour if a then b
- on l'appelle "évaluation de court-circuit" et rend les professeurs de programmation fous quand vous l'utilisez: D
Je suppose que c'est comme il est dit: si bash n'est pas ouvert dans un shell interactif, ne faites rien.
Je ne connais pas toute la fonction, mais il y a probablement des commandes et des drapeaux placés en dessous de cette ligne au cas où vous avez bash ouvert dans un TTY.