Je veux exécuter la commande de fichier (qui est un script) dans Shell en cours dans le terminal.
Exemple: le fichier ch_dir
contient les éléments suivants:
#!/bin/bash
cd /usr
Maintenant, si j’exécute habituellement le fichier comme suit, il exécute les commandes dans shell différent:
pandya@pandya-desktop:~$ ./ch_dir
pandya@pandya-desktop:~$
Ici cd /user
est exécuté dans un autre shell.
Mais je veux exécuter dans Shell actuel. Comment je fais ça?
Note: Ici cd
est uniquement utilisé pour expliquer. Le but de la question est d'exécuter n'importe quel commande dans le shell actuel
Utilisez la commande intégrée source
(de help -m source
):
source - Exécute les commandes depuis un fichier dans le shell actuel.
Exemple d'exécution mentionné dans la question:
pandya@pandya-desktop:~$ source ch_dir
pandya@pandya-desktop:/usr$
Ici, vous pouvez voir que cd /usr
est exécuté dans le shell actuel et que le répertoire du shell actuel a donc été modifié!
J'espère que cela vous aidera à exécuter la commande depuis le fichier dans le shell actuel.
Il suffit de lancer le script avec un .
comme ceci:
pandya@pandya-desktop:~$ . ./ch_dir