Les scripts bash sont pratiques pour automatiser les tâches, et vous constaterez qu'ils sont parfaits pour créer des applications simples en ligne de commande. Le shell Bash interprète les scripts Bash, vous n'aurez donc pas besoin d'installer de dépendances pour les écrire et les exécuter. Les scripts bash sont également portables car la plupart des systèmes d'exploitation basés sur Unix utilisent le même interpréteur de shell.
La connaissance des scripts Bash est indispensable pour tout développeur, en particulier si vous travaillez avec des systèmes basés sur Unix.
Variables dans Bash
Variables de bash Sont sensibles à la casse. Pour déclarer des variables, utilisez un signe égal (=) avec le nom à gauche et la valeur à droite :
ÉTAT=Washington
La valeur que cette déclaration attribue à ETAT est un seul mot. Si vous avez besoin d'espaces dans votre valeur, utilisez des guillemets autour :
ETAT="Arizona du Nord"
Vous devrez utiliser un signe dollar ($) préfixe pour référencer des variables dans d'autres variables ou instructions :
ÉTAT=Washington
LOCATION="Ma position est $ÉTAT"
Impression des valeurs dans Bash
Il existe plusieurs façons d'imprimer des variables dans Bash. Vous pouvez utiliser le écho commande pour la sortie de base ou le style C printf commande pour le formatage des chaînes.
ÉTAT=Washington
LOCATION="Ma position est $ÉTAT"
écho$EMPLACEMENT
Après avoir déclaré le ETAT variable, ce script définit EMPLACEMENT en faisant référence à STATE. Si utilise ensuite echo pour imprimer la valeur finale de la variable LOCATION.
La printf Le mot-clé vous permet d'utiliser des verbes de formatage pour générer des données. Les verbes de formatage de chaîne sont similaires à ceux de C et Go mais avec des verbes limités.
Verbe | Fonctionnalité |
---|---|
%c | imprime des caractères uniques |
%o | imprime Octadécimaux |
%s | imprime des chaînes, indépendamment de la casse |
%X | imprime en hexadécimal minuscule |
%X | imprime en hexadécimal majuscule |
%ré | imprime des entiers |
%e | imprime la notion scientifique flotte en minuscules |
%E | imprime la notion scientifique flottante en majuscule |
%F | imprime les nombres à virgule flottante |
%% | imprime un seul symbole de pourcentage. |
Voici un exemple d'utilisation d'un verbe avec le imprimer mot-clé.
ETAT=Lagos
printf "Ma position est %s" $ÉTAT
La printf fonction remplacerait la ETAT variable dans la position du %s verbe, et la sortie serait "Ma position est Lagos".
Vous pouvez faire des commentaires dans Bash avec le dièse ou le dièse (#) symbole. Le shell ignore automatiquement les commentaires.
#!/bin/bash
# ÉTAT=Washington
# LOCATION="Ma position est $STATE"
Il n'y a pas de commentaires multi-lignes. La plupart des IDE et des éditeurs de texte vous permettent de commenter avec le raccourci Ctrl/Commande + barre oblique (/). Vous devriez pouvoir utiliser le raccourci pour créer plusieurs commentaires sur une seule ligne.
Recevoir l'entrée de l'utilisateur dans Bash
Comme de nombreux autres langages de programmation, vous pouvez recevoir des entrées utilisateur dans Bash pour rendre vos programmes/scripts plus interactifs. Vous pouvez utiliser le lis commande pour demander l'entrée de l'utilisateur.
lis réponse
Dans ce cas, le réponse variable contiendra l'entrée de l'utilisateur à la livraison.
echo "Qu'est-ce que tu veux? : "
lire la réponse
echo $réponse
La demande d'entrée de l'utilisateur sera sur une nouvelle ligne dans l'exemple ci-dessus.
Vous pouvez ajouter le -n drapeau à la écho instruction d'impression pour conserver la ligne où l'utilisateur entre l'entrée.
echo -n "Que voulez-vous."
lire la réponse
echo $réponse
Déclarer des tableaux dans Bash
Tableaux dans Bash sont comme la plupart des langues. Vous pouvez déclarer une variable tableau dans Bash en spécifiant les éléments entre parenthèses.
Pays=('USA' 'Russie' 'Ukraine', "Angleterre", "Taiwan", "Chine")
L'accès à un tableau via une référence au nom de la variable récupèrerait le premier élément. Vous pouvez accéder à l'ensemble du tableau en utilisant le signe astérisque comme index.
echo ${Pays[*]}
Vous pouvez également spécifier l'index du tableau pour accéder à un élément spécifique. L'indice d'un tableau commence à zéro.
écho "${Pays[4]}"
Instructions conditionnelles dans Bash
Bash fournit des conditions pour la prise de décision dans les programmes.
Voici l'anatomie d'une instruction if-else dans Bash. Vous devrez utiliser le point-virgule pour spécifier la fin de la condition.
si [[ condition ]]; alors
écho déclaration1
elif [[condition ]]; alors
écho déclaration2
autre [[condition ]]; alors
écho déclaration3
Fi
Vous devez mettre fin à chaque si déclaration avec le Fi mot-clé.
si [ 1 == 2 ]; alors
écho une
elif [ 2 == 3 ]; alors#else-if
écho deux
autre [ 4 > 3 ];
écho "juste, 3"
Fi
Vous pouvez utiliser des instructions de cas dans vos programmes Bash en utilisant le Cas mot-clé. Vous devrez spécifier le modèle suivi de parenthèses de fin avant l'instruction.
VILLE=Lagos
Cas$ VILLEdans
"Washington") # motif
écho "Les États-Unis d'Amérique" # déclaration
;; # fin d'affaire
"Lagos" | "Abuja")
écho "Nigeria"
;;
"Johannesburg" | "Le Cap")
écho "Afrique du Sud"
;;
*) # modèle par défaut
écho "Antarctique" # instruction par défaut
;;
esac# fin de l'instruction case
Vous pouvez définir la casse par défaut en utilisant le signe astérisque (*) comme modèle. Les instructions de cas doivent se terminer par le esac mot-clé.
Boucles dans Bash
Selon vos besoins, vous pouvez utiliser une boucle while, une boucle for-range ou un style C boucle for pour les opérations récurrentes.
Voici un exemple de boucle for de style C. Les boucles for doivent se terminer par le Fini et vous devez terminer l'instruction for par un point-virgule suivi du fais mot-clé.
pour ((a = 0; un < 10; a+2)); fais
écho$a
Fini
La plage de boucles est pratique pour travailler avec des fichiers et de nombreuses autres opérations. Vous devrez utiliser le dans mot-clé avec la plage for-loop.
pour je dans {1..7}; fais
écho$1
Fini
Voici une simple boucle infinie pour démontrer Bash tandis que boucles en action.
nom=1
tandis que [ 1 -le 5 ] # tant que 1 < 5
fais
écho$nom
Fini
La -le dans la déclaration de condition est l'opérateur binaire pour moins que.
Fonctions dans Bash
Vous n'avez pas besoin de mots clés pour déclarer des fonctions dans Bash. Vous pouvez déclarer des fonctions avec le nom puis des parenthèses avant le corps de la fonction.
print_working_directory() {
écho$PWD#appeler la commande PWD depuis le script
}
écho "Tu es dans $(print_working_directory)"
Les fonctions peuvent renvoyer des variables dans Bash. Tout ce dont vous avez besoin est le revenir mot-clé.
print_working_directory() {
revenir$PWD
}
La print_working_directory La fonction renvoie le répertoire de travail du fichier.
Vous pouvez écrire des scripts shell dans d'autres langues
Bash n'est pas le seul langage que vous pouvez utiliser pour interagir avec le shell de votre système d'exploitation ou créer des applications en ligne de commande. Vous pouvez utiliser de nombreux autres langages comme Go, Python, Ruby et Rust.
De nombreux systèmes d'exploitation ont Python3 préinstallé, et Python est un langage répandu. Si vous avez besoin d'encore plus de fonctionnalités que les scripts Bash ne peuvent offrir, envisagez d'utiliser Python.