Puisque hello world est juste une déclaration de trace, essayons ceci :
Créer le fichier script de bash cd.sh
contenant :
#!/bin/bash
echo "/home/mike/Documents/A/B/C"
- En
.sh
L'extension est une ancienne convention consistant à donner aux noms de fichiers bash script une extension. C'est purement cosmétique et généralement inutile. Cependant, dans ce cas, il est important de la différencier de l'extension de base. cd
commandement.
Marquer le fichier bash script exécutable en utilisant :
chmod a+x cd.sh
Maintenant, exécutez le fichier :
$ cd $(./cd.sh)
bash: cd: /home/alex/Documents/A/B/C: No such file or directory
-
cd
que nous connaissons tous.
-
$(...)
exécute la commande entre parenthèses et renvoie la sortie.
- Si
cd.sh
était dans votre chemin, vous n'avez pas besoin de préciser où il se trouve. Nous préfixons avec ./
pour spécifier que la commande se trouve dans le répertoire courant.
- En
echo
sortie de la cd.sh
script est renvoyée au parent par l'intermédiaire de la balise $(...)
. Le parent (notre invite Shell) utilise cette sortie et la transmet au système Linux cd
commandement.
Comme d'autres l'ont mentionné, un processus enfant ne peut pas changer le répertoire du parent. C'est une façon pour l'enfant de dire au parent où il doit aller après la fin du processus.