Sous-shells bash

Sous Shells Bash



Parfois, cela vous oblige à exécuter une ou plusieurs commandes ou scripts en arrière-plan. Cette tâche peut être effectuée en écrivant toutes les commandes ou tous les scripts dans un fichier de script et en exécutant le fichier à l'aide de l'esperluette (&) ou en exécutant les commandes ou les scripts dans le sous-shell à partir du shell actuel. Le sous-shell peut être utilisé pour exécuter plusieurs commandes ou scripts en entourant le $() ou les backticks (`). Les méthodes d'utilisation du sous-shell Bash sont présentées dans ce didacticiel.

Différents exemples de sous-shell

Les différentes manières d'exécuter le script dans le sous-shell sont présentées dans cette partie du didacticiel.

Exemple 1 : exécuter le sous-shell à l'aide des guillemets simples et des guillemets doubles

Créez un fichier Bash avec le script suivant qui imprime la date et l'heure actuelles. Ensuite, la variable $strVal est imprimée en entourant le script de sous-shell entre guillemets simples et guillemets doubles.







#!/bin/bash

#Imprime la commande `date` dans le sous-shell

écho « Aujourd'hui, c'est `date` '

#Définir une variable chaîne

strVal = 'Sous-shell bash'

#Imprimez la variable dans le sous-shell en utilisant des guillemets simples

écho 'La sortie des guillemets simples :' '$(echo $strVal)'

#Imprimez la variable dans le sous-shell en utilisant des guillemets doubles

écho 'La sortie des guillemets doubles :' ' $(echo $strVal) '

La sortie suivante apparaît après l'exécution du script. Le script de sous-shell est imprimé sous forme de chaîne lorsqu'il est entouré de guillemets simples. Le script de sous-shell est exécuté lorsqu'il est entouré de guillemets :





Exemple 2 : rechercher tous les fichiers de l'extension particulière à l'aide du sous-shell

Créez un fichier Bash avec le script suivant qui prend l'extension de fichier comme entrée de l'utilisateur. Ensuite, la commande 'ls' est exécutée dans le sous-shell pour rechercher tous les fichiers de cette extension particulière.





#!/bin/bash

écho -n 'Entrez le nom de l'extension de fichier :'

#Prenez le nom de l'extension de fichier qui sera recherché

lire poste

#Vérifiez la valeur d'entrée

si [ [ $ext == '' ] ] ; alors

#Imprimer le message d'erreur

écho 'Aucune prolongation n'est accordée.'

autre

écho 'Les noms de fichiers avec $ext extension:'

#Imprimer tous les noms de fichiers avec l'extension donnée

écho ' $( echo `ls *.$ext` ) '

être

La sortie suivante apparaît après l'exécution du script avec l'entrée 'txt'. Selon la sortie, trois fichiers texte existent à l'emplacement actuel :



La sortie suivante apparaît après l'exécution du script avec la valeur vide :

Exemple 3 : Exécuter l'expression arithmétique dans le sous-shell

Créez un fichier Bash avec le script suivant où la variable du même nom est utilisée dans le shell principal et le sous-shell. L'opération arithmétique est définie dans le shell principal et le sous-shell.

#!/bin/bash

#Définir une variable shell parent

nombre = dix

#Imprime le résultat en fonction de la variable du shell parent

( ( résultat = $nombre + 5 ) )

écho 'La somme de $nombre +5= $résultat '

#Créer une variable de sous-shell avec le même nom que le shell parent

( nombre = vingt ; ( ( résultat = $nombre + dix ) ) ; écho 'La somme de $nombre +5= $résultat ' )

#Imprimer à nouveau le résultat basé sur la variable du shell parent

écho 'La somme de $nombre +5= $résultat '

La sortie suivante apparaît après l'exécution du script. Les première et dernière sorties montrent le résultat du shell principal. La deuxième sortie montre le résultat du sous-shell. La variable du shell principal n'est pas modifiée par la variable du sous-shell :

Exemple 4 : Exécuter plusieurs commandes dans le sous-shell

Créez un fichier Bash avec le script suivant qui envoie la sortie de la commande 'echo' dans la commande 'sed' qui remplace la valeur de chaîne correspondante par une autre chaîne. La sortie de la commande 'echo' est 'JavaScript'. Ainsi, cette valeur est comparée à « Java » et « JavaScript ». Si une correspondance est trouvée, les chaînes correspondantes sont remplacées par la chaîne 'Type'.

#!/bin/bash

#Définir une valeur de chaîne

strVal = 'JavaScript'

#Imprimer la valeur de la chaîne d'origine

écho 'Valeur de chaîne: $strVal '

#Imprimer la valeur du sous-shell

écho -n 'Valeur du sous-shell : '

écho ' $(echo $strVal | sed 's|Java|Type JavaScript|') '

La sortie suivante apparaît après l'exécution du script. Selon la sortie, la chaîne 'Java' est remplacée par la chaîne 'Type'. La sortie du sous-shell est 'JavaScript TypeScript':


Conclusion

Une ou plusieurs commandes ou scripts peuvent être exécutés à l'aide du sous-shell sans affecter le shell principal. Les objectifs de l'utilisation du sous-shell sont expliqués dans ce didacticiel à l'aide de plusieurs exemples. Différents types de tâches telles que la recherche de fichiers, le calcul de la somme de nombres, le remplacement des chaînes, etc. sont effectués par le sous-shell dans les exemples donnés. Le concept d'utilisation du sous-shell est correctement démontré et les nouveaux utilisateurs de Bash pourront désormais utiliser le sous-shell après avoir lu ce tutoriel.