Essayer de comprendre ce bout de code:
if [ -f /etc/bashrc ]; then . /etc/bashrc fi
Je « ne suis pas sûr ce que signifie exactement -f.
Réponse
La page de manuel appropriée pour vérifier cela est celle du shell lui-même, bash
, car -f
est une fonctionnalité fournie par le shell, cest « une bash intégrée.
Sur mon système (CentOS 7), la belle page de manuel le couvre. Le grep
peut ne pas donner les mêmes résultats sur dautres distributions. Néanmoins, si vous exécutez man bash
puis recherchez « -f », il devrait donner les résultats dont vous avez besoin.
$ man bash | grep -A1 "\-f file$" -f file True if file exists and is a regular file. $
Réponse
En bref, le morceau de code va générer le fichier /etc/bashrc
sil existe, et le lexistence est vérifiée par la commande [
dont -f
est un opérateur / paramètre.
if...then...else...fi
dans le script shell évalue létat de sortie des commandes – 0 en cas de succès. Il est donc approprié de faire quelque chose comme ceci:
if ping -c 4 google.com; then echo "We have a connection!" fi
La commande, dans votre cas, est [
qui est également connue sous le nom de commande test
. Il serait donc parfaitement valable de faire
if test -f /etc/bashrc; then . /etc/bashrc fi
Le -f flag vérifie deux choses: le chemin fourni existe et est un fichier normal. Si /etc/bashrc
est en fait un répertoire ou est manquant, le test doit renvoyer un statut de sortie différent de zéro pour signaler léchec
Cette commande était à lorigine une commande distincte, ce nest pas fait partie des commandes intégrées du shell. De nos jours, la plupart des shells de type Bourne lont intégré, et cest ce que le shell utilisera.
Sur une note latérale, le /etc/bashrc
semble être un fichier supplémentaire inutile que votre administrateur ou lauteur original de lextrait de code utilise. Il existe /etc/bash.bashrc
, qui est conçu comme un fichier rc à léchelle du système pour bash, donc on peut sattendre à ce quil soit utilisé.
Voir aussi: