GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter une commande dans un script shell ?

Shell est un interpréteur de ligne de commande qui permet à l'utilisateur d'interagir avec le système. Il est chargé de prendre les entrées de l'utilisateur et d'afficher la sortie.

Les scripts shell sont une série de commandes écrites dans l'ordre d'exécution. Ces scripts peuvent contenir des fonctions, des boucles, des commandes, des variables. Les scripts permettent aux utilisateurs d'enregistrer facilement certaines séquences de codes qui peuvent être utilisées encore et encore. Les scripts shell peuvent également avoir des commentaires pour augmenter la lisibilité.

Un script shell doit être enregistré avec l'extension .sh .

Pour faire savoir au système Linux que le fichier est un script shell, le fichier doit commencer par le shebang construire.

#!/bin/bash 
OR
#!/bin/sh

Après cela, le script peut contenir des commandes, des fonctions, des boucles, des vérifications conditionnelles, etc.

Un bon script contient toujours des commentaires qui le rendent lisible.

Créer et exécuter un script shell de base

Un script shell peut être créé à l'aide de vi, de la commande cat ou de l'éditeur de texte normal dans l'interface graphique.

Créons un script shell de base en utilisant vi

$ vi basic_script.sh

Cela vous mènera à l'éditeur vi. Ajoutez les lignes suivantes :

#!/bin/bash
whoami
date

Ce simple script doit afficher l'utilisateur actuel suivi de la date.

Pour enregistrer et quitter l'éditeur vi :

  • Appuyez sur ÉCHAP
  • Tapez :
  • Tapez "wq"
  • Appuyez sur Entrée

Par défaut, le créateur du script n'obtient pas d'autorisation d'exécution pour le fichier.

Pour changer cela :

$ chmod +x basic_script.sh

Cela vous donnera (utilisateur actuel) la permission d'exécuter le fichier.

Pour exécuter le script :

$ bash basic_script.sh

La première ligne de sortie correspond à la commande "whoami" et la deuxième ligne à la commande "date".

Une autre façon d'exécuter le script est :

$ ./basic_script.sh 

L'exécution du fichier de cette manière peut nécessiter que l'utilisateur donne d'abord l'autorisation. L'exécuter avec "bash" ne nécessite pas d'autorisation.

Le même script s'exécute avec 'bash' avant, mais ayant des problèmes d'autorisation lors d'une tentative d'exécution directe. La raison pour laquelle cela se produit est que la commande bash [filename] n'a besoin que de l'autorisation de lecture du fichier.

Alors que la commande ./[filename] exécute le fichier en tant qu'exécutable et nécessite donc l'autorisation d'exécution. Cette question a été répondue en détail sur StackExchange.

En général, il est préférable de fournir une autorisation exécutable.

Utiliser des variables dans les scripts shell

Les scripts peuvent inclure des variables définies par l'utilisateur. En fait, à mesure que les scripts deviennent volumineux, il est essentiel d'avoir des variables clairement définies. Les variables de nature auto-descriptive sont une autre qualité d'un bon script.

Ajoutez les lignes suivantes au script :

#!/bin/bash
#This is a comment

#defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS

SALUTATIONS est la variable définie et accessible ultérieurement à l'aide de '$'.

Il ne doit pas y avoir d'espace dans la ligne où les variables reçoivent une valeur.

Exécutons le script :

Lire l'entrée depuis la ligne de commande

Les scripts shell peuvent être rendus interactifs avec la possibilité d'accepter les entrées de la ligne de commande. La commande de lecture peut être utilisée pour stocker l'entrée de la ligne de commande dans une variable.

#!/bin/bash
#This is a comment

#defining a variable
echo "What is your name?"
#reading input 
read NAME
#defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS
                 

Une variable NOM a été utilisé pour accepter les entrées de la ligne de commande.

A l'exécution du script :

Définir les fonctions

Les utilisateurs peuvent définir leurs propres fonctions dans un script. Ces fonctions peuvent prendre plusieurs arguments.

Dans le script ajoutez :

#!/bin/bash
#This is a comment

#defining a variable
echo "What is the name of the directory you want to create?"
#reading input 
read NAME
#defining a variable

echo "Creating $NAME ..."
mkcd ()
{
  mkdir "$NAME" 
  cd "$NAME"
}

mkcd
echo "You are now in $NAME"

Ce script demandera à l'utilisateur un nom de répertoire. Il créera ensuite le répertoire et le cd dedans.

Conclusion

Nous avons vu comment les scripts peuvent être utilisés pour exécuter des commandes dans un ordre sériel. Les scripts aident les utilisateurs à réduire la redondance et à gagner du temps. Les scripts peuvent également être partagés entre différents utilisateurs.

Les scripts que nous avons vus dans ce didacticiel étaient assez basiques, les scripts peuvent également être conçus pour effectuer des tâches complexes. Pour en savoir plus sur les scripts, consultez ceci.


Linux
  1. Comment exécuter une commande dans Shell sans l'enregistrer dans l'historique ? [Astuces Linux]

  2. Comment passer un argument de ligne de commande dans un script shell ?

  3. Comment exécuter la commande avant la connexion de l'utilisateur sous Linux ?

  4. Comment créer un fichier temporaire en script shell ?

  5. Comment exécuter un script dans Shell lorsqu'une touche de raccourci est enfoncée ?

Comment utiliser des variables dans les scripts Shell

Comment exécuter une commande Shell avec Python

Comment créer des scripts shell

Comment exécuter des commandes Shell via un serveur HTTP

Comment écrire un script shell dans Ubuntu

Comment stocker une commande Linux en tant que variable dans un script shell