Quelle est la différence entre l'approvisionnement et l'exécution d'un script shell
Pour comprendre la différence entre les deux façons dont il faut d'abord avoir une connaissance solide pour utiliser les deux méthodes, alors ayons d'abord leur définition de base une par une:
Source d'un script shell
L'approvisionnement d'un script shell est un moyen d'exécuter un script dans l'environnement de shell actuel. Toutes les commandes d'un script sont exécutées si elles sont tapées directement dans l'interface de ligne de commande et l'approvisionnement d'un script fait la même chose. Pour cette raison, il offre une option au script pour modifier les variables d'environnement et définir les options de shell dans le shell actuel.
Pour plus d'illustration, j'ai réalisé un fichier de test pour le script bash, puis je l'ai exécuté, voici le code du fichier bash que j'ai créé:
# bashfile.shot
exporter my_info = "Bonjour Linuxhint"
Ici, j'ai créé une variable environnementale qui est my_info qui a Bonjour Linuxhint stocké dedans puis l'exécuté en utilisant la syntaxe donnée:
.
Depuis que j'ai créé un fichier nommé Bashfile.SH j'ai donc utilisé la syntaxe ci-dessus comme ceci:
. bashfile.shot
Une fois le fichier exécuté, j'ai appelé la variable environnementale pour voir ce qui est stocké et il y renvoie la valeur stockée, ce qui montre clairement que les modifications des variables d'environnement persistent dans le shell actuel:
Exécution d'un script shell
L'exécution d'un script shell est un moyen d'exécuter un script dans un shell séparé. Lorsqu'un script est exécuté, un nouveau shell est créé, le script est exécuté dans ce shell et le shell se termine lorsque le script est terminé. Cela montre que toutes les modifications apportées aux variables d'environnement ou aux options de shell dans le script ne persisteront pas une fois le script terminé. Pour plus d'illustration, j'ai réalisé un fichier de test pour le script bash, puis je l'ai exécuté, voici le code du fichier bash que j'ai créé:
# bashfile.shot
exporter my_info = "Bonjour Linuxhint"
Ici, je viens de créer une variable environnementale qui est My_info qui a Bonjour Linuxhint stocké dedans puis l'exécuté en utilisant la syntaxe donnée:
./ /
Depuis que j'ai créé un fichier nommé Bashfile.SH j'ai donc utilisé la syntaxe ci-dessus comme ceci:
./ bashfile.shot
Une fois le fichier exécuté, j'ai appelé la variable d'environnement pour voir ce qui est stocké dessus et il renvoie un blanc qui montre clairement que les modifications apportées aux variables d'environnement ou aux options de shell dans le script ne persisteront pas une fois le script terminé:
Pour illustrer davantage la différence là-bas, le tableau ci-dessous qui indique certaines des principales différences entre l'approvisionnement et l'exécution d'un fichier:
Facteurs | Exécution d'un script shell | Source d'un script shell |
Alias et fonctions | Les alias et les fonctions ne persistent que dans le shell du script. | Les alias et les fonctions persistent dans le shell actuel. |
Environnement | Les modifications des variables d'environnement ne persistent que dans le shell du script. | Les modifications des variables d'environnement persistent dans le shell actuel. |
Syntaxe | ./ nom de script.nom de script sh ou bash.shot | . nom de script.SH ou nom de script source.shot |
Utilité principale | Exécuter un script autonome sans affecter le shell actuel. | Configurez les variables d'environnement ou les alias pour la coquille |
Conclusion
Il existe deux façons d'exécuter le script bash, l'un est en l'approvisionnement et l'autre est en l'exécutant les deux comme ont leur propre signification. La principale différence entre les deux est que l'approvisionnement du fichier de script maintient les modifications des variables d'environnement dans le shell actuel, tandis que l'exécution du script conservera les modifications.un