Les scripts Bash peuvent être utilisés à diverses fins, telles que l'exécution d'une commande shell, l'exécution de plusieurs commandes ensemble, la personnalisation des tâches administratives, l'automatisation des tâches, etc. La connaissance des bases de la programmation bash est donc importante pour chaque utilisateur Linux. Cet article vous aidera à vous faire une idée de base sur la programmation bash. La plupart des opérations courantes des scripts bash sont expliquées avec des exemples très simples ici.
Les sujets suivants de la programmation bash sont traités dans cet article.
- Bonjour le monde
- Commande d'écho
- commentaires
- Commentaire multiligne
- Pendant que la boucle
- Pour la boucle
- Obtenir l'entrée de l'utilisateur
- Si déclaration
- Et Condition si déclaration
- Ou Condition si déclaration
- Sinon si et sinon condition
- Condition du cas
- Obtenir des arguments à partir de la ligne de commande
- Obtenir des arguments à partir de la ligne de commande avec des noms
- Combiner deux chaînes dans une variable
- Obtenir une sous-chaîne de chaînes
- Ajouter 2 nombres dans une variable
- Créer une fonction
- Utiliser les paramètres de fonction
- Transmettre la valeur de retour du script
- Créer un répertoire
- Créer un répertoire en vérifiant l'existence
- Lire un fichier
- Supprimer un fichier
- Ajouter au fichier
- Tester si le fichier existe
- Exemple d'envoi d'e-mail
- Obtenir la date actuelle de l'analyse
- Attendre la commande
- Commande de sommeil
Créer et exécuter le premier programme BASH :
Vous pouvez exécuter un script bash à partir du terminal ou en exécutant n'importe quel fichier bash. Exécutez la commande suivante à partir du terminal pour exécuter une instruction bash très simple. La sortie de la commande sera ' Bonjour le monde '.
$chassèrent 'Bonjour le monde'
Ouvrez n'importe quel éditeur pour créer un fichier bash. Ici, nano l'éditeur est utilisé pour créer le fichier et le nom du fichier est défini comme ' First.sh'
$nanoPremier.sh
Ajoutez le script bash suivant au fichier et enregistrez le fichier.
#!/bin/bashchassèrent 'Bonjour le monde'
Vous pouvez exécuter le fichier bash de deux manières. Une façon consiste à utiliser la commande bash et une autre consiste à définir l'autorisation d'exécution sur le fichier bash et à exécuter le fichier. Les deux manières sont montrées ici.
$frapperPremier.shOu,
$chmoda+x Premier.sh$./Premier.sh
Utilisation de la commande echo :
Vous pouvez utiliser la commande echo avec diverses options. Certaines options utiles sont mentionnées dans l'exemple suivant. Lorsque vous utilisez ' chassèrent ' sans aucune option, une nouvelle ligne est ajoutée par défaut. '-n' L'option est utilisée pour imprimer n'importe quel texte sans nouvelle ligne et '-Et' L'option est utilisée pour supprimer les caractères de barre oblique inverse de la sortie. Créez un nouveau fichier bash avec un nom, ' echo_exemple.sh ' et ajoutez le script suivant.
#!/bin/bashchassèrent 'Impression de texte avec saut de ligne'
chassèrent -n 'Impression de texte sans saut de ligne'
chassèrent -Et ' Retrait barre oblique inverse personnages '
Exécutez le fichier avec la commande bash.
$frapperecho_exemple.sh
Utilisation du commentaire :
'#' Le symbole est utilisé pour ajouter un commentaire sur une seule ligne dans le script bash. Créez un nouveau fichier nommé ' comment_example.sh' et ajoutez le script suivant avec un commentaire sur une seule ligne.
#!/bin/bash# Ajouter deux valeurs numériques
((somme=25+35))
#Imprimer le résultat
chassèrent somme de $
Exécutez le fichier avec la commande bash.
$frappercomment_example.sh
Utilisation du commentaire multiligne :
Vous pouvez utiliser des commentaires sur plusieurs lignes dans bash de différentes manières. Un moyen simple est illustré dans l'exemple suivant. Créez un nouveau bash nommé, 'comment-multiligne.sh' et ajoutez le script suivant. Ici, ':' et ' les symboles sont utilisés pour ajouter un commentaire multiligne dans le script bash. Ce script suivant calculera le carré de 5.
#!/bin/bash:'
Le script suivant calcule
la valeur carrée du nombre, 5.
'
((Région=5*5))
chassèrent $zone
Exécutez le fichier avec la commande bash.
$frappercommentaire-multiligne.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur l'utilisation du commentaire bash.
https://linuxhint.com/bash_comments/
Utilisation de la boucle While :
Créez un fichier bash avec le nom, 'while_example.sh', connaître l'utilisation de tandis que boucle. Dans l'exemple, tandis que boucle itérera pour 5 fois. La valeur de compter variable s'incrémentera de 1 à chaque étape. Lorsque la valeur de compter variable sera 5 puis le tandis que la boucle se terminera.
#!/bin/bashvalide=vrai
compter=1
tandis que [ $valide ]
faire
chassèrent $compte
si [ $compte -eq 5 ];
alors
Pause
être
((compter++))
terminé
Exécutez le fichier avec la commande bash.
$frapperwhile_example.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur l'utilisation de la boucle while.
https://linuxhint.com/bash-while-loop-examples/
Utilisation de la boucle For :
Les bases pour La déclaration de boucle est illustrée dans l'exemple suivant. Créez un fichier nommé ' pour_exemple.sh ' et ajoutez le script suivant en utilisant pour boucle. Ici, pour boucle itérera pour dix fois et imprimer toutes les valeurs de la variable, contrer en une seule ligne.
#!/bin/bashpour (( contrer=dix; contrer>0; contrer--))
faire
chassèrent -n 'compteur $'
terminé
imprimer ' '
Exécutez le fichier avec la commande bash.
$frapperpour_exemple.sh
Vous pouvez utiliser la boucle for à différentes fins et de différentes manières dans votre script bash. Vous pouvez consulter le lien suivant pour en savoir plus sur l'utilisation de la boucle for.
https://linuxhint.com/bash-for-loop-examples/
Obtenir l'entrée de l'utilisateur :
' lire La commande ' est utilisée pour prendre l'entrée de l'utilisateur dans bash. Créez un fichier nommé ' user_input.sh ' et ajoutez le script suivant pour prendre les entrées de l'utilisateur. Ici, une valeur de chaîne sera extraite de l'utilisateur et affichera la valeur en combinant une autre valeur de chaîne.
#!/bin/bashchassèrent 'Entrez votre nom'
lireNom
chassèrent 'Bienvenue$nomvers LinuxHint '
Exécutez le fichier avec la commande bash.
$frapperuser_input.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur l'utilisation des entrées utilisateur.
https://linuxhint.com/bash-script-user-input/
Utilisation de l'instruction if :
Vous pouvez utiliser la condition if avec une ou plusieurs conditions. Le bloc de début et de fin de cette instruction est défini par 'si' et 'être' . Créez un fichier nommé ' simple_if.sh ’ avec le script suivant pour connaître l'utilisation si déclaration en bash. Ici, dix est affecté à la variable, m . si la valeur de $n est inférieur à 10, la sortie sera C'est un nombre à un chiffre , sinon la sortie sera C'est un nombre à deux chiffres . En comparaison, '-Lt' est utilisé ici. A titre de comparaison, vous pouvez également utiliser '-eq' pour égalité , ‘-ne’ pour pas l'égalité et '-gt' pour plus grand que en script bash.
#!/bin/bashm=dix
si [ $n -lt dix ];
alors
chassèrent 'C'est un nombre à un chiffre'
autre
chassèrent 'C'est un nombre à deux chiffres'
être
Exécutez le fichier avec la commande bash.
$frappersimple_if.sh
Utilisation de l'instruction if avec logique AND :
Différents types de conditions logiques peuvent être utilisés dans une instruction if avec deux ou plusieurs conditions. Comment définir plusieurs conditions dans une instruction if en utilisant ET logique est illustrée dans l'exemple suivant. '&&' est utilisé pour appliquer ET logique de si déclaration. Créer un fichier nommé 'if_with_AND.sh' pour vérifier le code suivant. Ici, la valeur de Nom d'utilisateur et le mot de passe les variables seront extraites de l'utilisateur et comparées à ' administrateur ' et ' secret '. Si les deux valeurs correspondent, la sortie sera utilisateur valide , sinon la sortie sera utilisateur invalide .
! /un m/frapperchassèrent 'Saisissez votre nom d'utilisateur'
lireNom d'utilisateur
chassèrent 'Entrer le mot de passe'
lirele mot de passe
si [[ ( $nom d'utilisateur=='administrateur' && $mot de passe=='secret' ) ]];alors
chassèrent 'utilisateur valide'
autre
chassèrent 'utilisateur invalide'
être
Exécutez le fichier avec la commande bash.
$frapperif_with_AND.sh
Utilisation de l'instruction if avec logique OR :
' || ’ est utilisé pour définir OU logique dans si état. Créer un fichier nommé 'if_with_OR.sh' avec le code suivant pour vérifier l'utilisation de OU logique de si déclaration. Ici, la valeur de m sera retiré à l'utilisateur. Si la valeur est égale à quinze ou Quatre cinq alors la sortie sera Tu as gagné le jeu , sinon la sortie sera Tu as perdu le jeu .
#!/bin/bashchassèrent « Entrez n'importe quel numéro »
lirem
si [[ ( $n -eq quinze || $n -eq Quatre cinq ) ]]
alors
chassèrent « Vous avez gagné le jeu »
autre
chassèrent 'Tu as perdu le jeu'
être
Exécutez le fichier avec la commande bash.
$frapperif_with_OR.sh
Utilisation de l'instruction else if :
L'utilisation de sinon si La condition est peu différente dans bash par rapport aux autres langages de programmation. ' elif ’ est utilisé pour définir sinon si état en bash. Créez un fichier nommé ' elseif_exemple.sh ' et ajoutez le script suivant pour vérifier comment sinon si est défini dans le script bash.
#!/bin/bashchassèrent « Entrez votre numéro porte-bonheur »
lirem
si [ $n -eq 101 ];
alors
chassèrent « Vous avez le 1er prix »
elif [ $n -eq 510 ];
alors
chassèrent « Vous avez le 2e prix »
elif [ $n -eq 999 ];
alors
chassèrent « Vous avez le 3e prix »
autre
chassèrent « Désolé, essayez pour la prochaine fois »
être
Exécutez le fichier avec la commande bash.
$frapperelseif_exemple.sh
Utilisation de la déclaration de cas :
Cas l'instruction est utilisée comme alternative à si-sinon-sinon déclaration. Le bloc de début et de fin de cette instruction est défini par ' Cas ' et ' esac '. Créez un nouveau fichier nommé ' case_example.sh ' et ajoutez le script suivant. La sortie du script suivant sera identique au précédent sinon si Exemple.
#!/bin/bashchassèrent « Entrez votre numéro porte-bonheur »
lirem
Cas $n dans
101)
chassèrent chassèrent « Vous avez le 1er prix » ;;
510)
chassèrent « Vous avez le 2e prix » ;;
999)
chassèrent « Vous avez le 3e prix » ;;
*)
chassèrent « Désolé, essayez pour la prochaine fois » ;;
esac
Exécutez le fichier avec la commande bash.
$frappercase_example.sh
Obtenez des arguments à partir de la ligne de commande :
Le script Bash peut lire l'entrée de l'argument de la ligne de commande comme tout autre langage de programmation. Par exemple, 1 $ et 2 $ sont utilisées pour lire les premier et deuxième arguments de la ligne de commande. Créer un fichier nommé ligne_de_commande.sh et ajoutez le script suivant. Deux valeurs d'argument lues par le script suivant et imprime le nombre total d'arguments et les valeurs d'argument en sortie.
#!/bin/bashchassèrent 'Nombre total d'arguments : $#'
chassèrent '1er argument = $1'
chassèrent '2ème argument = $2'
Exécutez le fichier avec la commande bash.
$frappercommand_line.sh Astuce Linux
Vous pouvez consulter le lien suivant pour en savoir plus sur l'utilisation de l'argument de ligne de commande.
https://linuxhint.com/command_line_arguments_bash_script/
Obtenez des arguments à partir de la ligne de commande avec des noms :
La façon dont vous pouvez lire les arguments de ligne de commande avec des noms est indiquée dans le script suivant. Créez un fichier nommé ' command_line_names.sh' et ajoutez le code suivant. Ici, deux arguments, X et ET sont lus par ce script et impriment la somme de X et Y.
#!/bin/bashpouren colèredans ' [email protégé] '
faire
indice= $(chassèrent $ argument | couper -f1 -ré=)
heures= $(chassèrent $ argument | couper -f2 -ré=)
Cas $index dans
X) X=$ heures;;
ET) et=$ heures;;
*)
esac
terminé
((résultat= x + y))
chassèrent 'X + Y =$résultat'
Exécutez le fichier avec la commande bash et avec deux arguments de ligne de commande.
$frappernoms_ligne_de_commandeX=Quatre cinq ET=30
Combinez les variables de chaîne :
Vous pouvez facilement combiner des variables de chaîne dans bash. Créer un fichier nommé string_combine.sh et ajoutez le script suivant pour vérifier comment vous pouvez combiner des variables de chaîne dans bash en plaçant des variables ensemble ou en utilisant '+' opérateur.
#!/bin/bashchaîne1='Linux'
chaîne2='Indice'
chassèrent '$chaîne1$chaîne2'
chaîne3=$chaîne1+$chaîne2
chaîne3+='est un bon site de blog tutoriel'
chassèrent $chaîne3
Exécutez le fichier avec la commande bash.
$frapperstring_combine.sh
Obtenir la sous-chaîne de String :
Comme les autres langages de programmation, bash n'a pas de fonction intégrée pour couper la valeur des données de chaîne. Mais vous pouvez effectuer la tâche de sous-chaîne d'une autre manière dans bash, comme indiqué dans le script suivant. Pour tester le script, créez un fichier nommé ' sous-chaîne_exemple.sh ' avec le code suivant. Ici, la valeur, 6 indique le point de départ à partir duquel la sous-chaîne commencera et 5 indique la longueur de la sous-chaîne.
#!/bin/bashStr=« Apprendre Linux à partir de LinuxHint »
sousStr=$ {Str: 6 : 5}
chassèrent $subStr
Exécutez le fichier avec la commande bash.
$frappersous-chaîne_exemple.sh
Ajouter deux nombres :
Vous pouvez effectuer les opérations arithmétiques dans bash de différentes manières. La façon dont vous pouvez ajouter deux nombres entiers dans bash à l'aide de doubles crochets est illustrée dans le script suivant. Créez un fichier nommé ' add_numbers.sh ' avec le code suivant. Deux valeurs entières seront extraites de l'utilisateur et imprimées le résultat de l'addition.
#!/bin/bashchassèrent « Entrez le premier numéro »
lireX
chassèrent « Entrez le deuxième numéro »
lireet
(( somme= x + y))
chassèrent 'Le résultat de l'addition =somme de $'
Exécutez le fichier avec la commande bash.
$frapperadd_numbers.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur l'arithmétique bash.
https://linuxhint.com/bash_arithmetic_operations/
Créer une fonction :
La façon dont vous pouvez créer une fonction simple et appeler la fonction est illustrée dans le script suivant. Créez un fichier nommé ' exemple_fonction.sh ' et ajoutez le code suivant. Vous pouvez appeler n'importe quelle fonction par son nom uniquement sans utiliser de crochet dans le script bash.
#!/bin/bashfonctionF1()
{
chassèrent « J'aime la programmation bash »
}
F1
Exécutez le fichier avec la commande bash.
$frapperexemple_fonction.sh
Créer une fonction avec des paramètres :
Bash ne peut pas déclarer de paramètre de fonction ou d'arguments au moment de la déclaration de fonction. Mais vous pouvez utiliser des paramètres dans la fonction en utilisant une autre variable. Si deux valeurs sont transmises au moment de l'appel de la fonction, les variables $1 et $2 sont utilisées pour lire les valeurs. Créez un fichier nommé ' fonction|_paramètre.sh ' et ajoutez le code suivant. Ici, la fonction, ' Rectangle_Area' calculera l'aire d'un rectangle en fonction des valeurs des paramètres.
#!/bin/bashZone_rectangle() {
Région= $((1 $ * 2 $))
chassèrent 'La zone est :$zone'
}
Zone_rectangledix vingt
Exécutez le fichier avec la commande bash.
$frapperfonction_paramètre.sh
Passer la valeur de retour de la fonction :
La fonction Bash peut transmettre à la fois des valeurs numériques et des valeurs de chaîne. L'exemple suivant montre comment vous pouvez passer une valeur de chaîne à partir de la fonction. Créez un fichier nommé ' fonction_retour.sh ' et ajoutez le code suivant. La fonction, salutation() renvoie une valeur de chaîne dans la variable, heures qui s'imprime plus tard en combinant avec une autre chaîne.
#!/bin/bashfonctionsalutation() {
p='Bonjour,$nom'
chassèrent $ chaîne
}
chassèrent 'Entrez votre nom'
lireNom
heures= $(salutation)
chassèrent 'La valeur de retour de la fonction est$ heures'
Exécutez le fichier avec la commande bash.
$frapperfonction_retour.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur l'utilisation de la fonction bash.
https://linuxhint.com/return-string-bash-functions/
Créer un répertoire :
Bash utilise ' mkdir ' commande pour créer un nouveau répertoire. Créez un fichier nommé ' make_directory.sh ' et ajoutez le code suivant pour prendre un nouveau nom de répertoire de l'utilisateur. Si le nom du répertoire n'existe pas dans l'emplacement actuel, il créera le répertoire, sinon le programme affichera une erreur.
#!/bin/bashchassèrent 'Entrez le nom du répertoire'
lirenouveaurép
``mkdir $ nouveaurép``
Exécutez le fichier avec la commande bash.
$frappermake_directory.sh
Créer un répertoire en vérifiant l'existence :
Si vous souhaitez vérifier l'existence du répertoire dans l'emplacement actuel avant d'exécuter le ' mkdir ', vous pouvez utiliser le code suivant. '-ré L'option ' est utilisée pour tester qu'un répertoire particulier existe ou non. Créez un fichier nommé ' directory_exist.sh' et ajoutez le code suivant pour créer un répertoire en vérifiant l'existence.
#!/bin/bashchassèrent 'Entrez le nom du répertoire'
lirendr
si [ -ré '$ndir' ]
alors
chassèrent 'Répertoire existe'
autre
``mkdir $ndir``
chassèrent 'Répertoire créé'
être
Exécutez le fichier avec la commande bash.
$frapperdirectory_exist.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur la création de répertoires.
https://linuxhint.com/bash_mkdir_not_existent_path/
Lire un fichier :
Vous pouvez lire n'importe quel fichier ligne par ligne dans bash en utilisant loop. Créez un fichier nommé ' read_file.sh ' et ajoutez le code suivant pour lire un fichier existant nommé, ' livre.txt '.
#!/bin/bashdéposer='livre.txt'
tandis que lireligne;faire
chassèrent $ligne
terminé < $fichier
Exécutez le fichier avec la commande bash.
$frapperread_file.shExécutez la commande suivante pour vérifier le contenu original de ‘ livre.txt ' déposer.
$chatlivre.txt
Vous pouvez consulter le lien suivant pour connaître les différentes manières de lire le fichier.
https://linuxhint.com/read_file_line_by_line_bash/
Supprimer un fichier :
' rm La commande ' est utilisée dans bash pour supprimer n'importe quel fichier. Créez un fichier nommé ' delete_file.sh ' avec le code suivant pour prendre le nom de fichier de l'utilisateur et le supprimer. Ici, '-je' L'option est utilisée pour obtenir l'autorisation de l'utilisateur avant de supprimer le fichier.
#!/bin/bashchassèrent 'Entrez le nom du fichier à supprimer'
lirefn
rm -je $fn
Exécutez le fichier avec la commande bash.
$ls$frapperdelete_file.sh
$ls
Ajouter au fichier :
De nouvelles données peuvent être ajoutées dans n'importe quel fichier existant en utilisant '>>' opérateur dans bash. Créer un fichier nommé 'append_file.sh ' et ajoutez le code suivant pour ajouter un nouveau contenu à la fin du fichier. Ici, ' Apprendre Laravel 5 ' sera ajouté à la fin de ' livre.txt' fichier après l'exécution du script.
#!/bin/bashchassèrent 'Avant d'ajouter le fichier'
chatlivre.txt
chassèrent « Apprentissage de Laravel 5 »>>livre.txt
chassèrent 'Après avoir ajouté le fichier'
chatlivre.txt
Exécutez le fichier avec la commande bash.
$frapperajouter_fichier.sh
Tester si le fichier existe :
Vous pouvez vérifier l'existence du fichier dans bash en utilisant '-Et' ou '-F' option. '-F' L'option est utilisée dans le script suivant pour tester l'existence du fichier. Créez un fichier nommé ' file_exist.sh ' et ajoutez le code suivant. Ici, le nom du fichier passera depuis la ligne de commande.
#!/bin/bashnom de fichier=1 $
si [ -F '$nom de fichier' ];alors
chassèrent 'Le fichier existe'
autre
chassèrent 'Fichier ne existe pas'
être
Exécutez les commandes suivantes pour vérifier l'existence du fichier. Ici, livre.txt le fichier existe et livre2.txt n'existe pas à l'emplacement actuel.
$ls$frapperfile_exist.sh livre.txt
$frapperfile_exist.sh book2.txt
Envoyer un e-mail :
Vous pouvez envoyer un e-mail en utilisant ' courrier ' ou ' envoyer un mail ' commande. Avant d'utiliser ces commandes, vous devez installer tous les packages nécessaires. Créez un fichier nommé ' mail_exemple.sh ' et ajoutez le code suivant pour envoyer l'e-mail.
#!/bin/bashDestinataire=admin@exemple.com
Sujet= Salutation
Un message=Bienvenue sur notre site
``courrier-s $Sujet $Bénéficiaire <<< $Message``
Exécutez le fichier avec la commande bash.
$frappermail_exemple.sh
Obtenir la date actuelle de l'analyse :
Vous pouvez obtenir la date et l'heure système actuelles en utilisant ` Date ` commande. Chaque partie de la valeur de date et d'heure peut être analysée en utilisant ' Y', 'm', 'd', 'H', 'M' et ' S' . Créez un nouveau fichier nommé ' date_parse.sh’ et ajoutez le code suivant pour séparer les valeurs du jour, du mois, de l'année, de l'heure, des minutes et des secondes.
#!/bin/bashAnnée=``Date+%ET``
Mois=``Date+%m``
Jour=``Date+%ré``
Heure=``Date+%H``
Minute=``Date+%M``
Seconde=``Date+%S``
chassèrent ``Date``
chassèrent 'La date actuelle est :$Jour-$Mois-$Année'
chassèrent 'L'heure actuelle est :$Heure:$minute:$Seconde'
Exécutez le fichier avec la commande bash.
$frapperdate_parse.sh
Commande d'attente :
attendre est une commande intégrée de Linux qui attend la fin de tout processus en cours. attendre La commande est utilisée avec un identifiant de processus ou un identifiant de travail particulier. Si aucun ID de processus ou d'ID de travail n'est donné avec la commande wait, il attendra que tous les processus enfants actuels se terminent et renvoie l'état de sortie. Créez un fichier nommé ' wait_example.sh' et ajoutez le script suivant.
#!/bin/bashchassèrent 'Attendez la commande' &
id_processus=$!
attendre $process_id
chassèrent 'Sortie avec le statut $?'
Exécutez le fichier avec la commande bash.
$frapperwait_example.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur la commande wait.
Commande de sommeil :
Lorsque vous souhaitez suspendre l'exécution d'une commande pendant une période spécifique, vous pouvez utiliser dormir commander. Vous pouvez définir le montant du retard en secondes (s), minutes (m), heures (h) et jours (d). Créer un fichier nommé 'sommeil_exemple.sh' et ajoutez le script suivant. Ce script attendra 5 secondes après l'exécution.
#!/bin/bashchassèrentAttendrepour 5secondes
dormir 5
chassèrentComplété
Exécutez le fichier avec la commande bash.
$frappersleep_example.sh
Vous pouvez consulter le lien suivant pour en savoir plus sur la commande sleep.
https://linuxhint.com/sleep_command_linux/
J'espère qu'après avoir lu cet article, vous avez un concept de base sur le langage de script bash et vous pourrez les appliquer en fonction de vos besoins.