Tutoriel de script Bash pour les débutants

Bash Scripting Tutorial



Le langage de commande par défaut de Linux est le script Bash. Nous devons exécuter quotidiennement de nombreuses commandes sous Linux à de nombreuses fins. Ces tâches quotidiennes peuvent être automatisées à l'aide d'un script bash. Tout utilisateur peut apprendre ce langage de script très facilement et rapidement. Si vous débutez dans la programmation bash, ce tutoriel est fait pour vous.

Contenu:

  1. commentaires
  2. Commande echo
  3. Variables
  4. Instruction conditionnelle
  5. Boucles
  6. Les fonctions
  7. Appel de programmes dans un script
  8. Création de menus
  9. Traitement de la ligne de commande
  10. Arithmétique
  11. Manipulation des chaînes
  12. Renvoyer les codes de retour d'un script et attraper dans un autre script
  13. Lecture et écriture dans des fichiers
  14. Tuyaux

commentaires

L'ajout de commentaires avec le code est une partie essentielle de tout langage de programmation. Les commentaires ne sont pas analysés avec le script au moment de l'exécution. Le lecteur peut comprendre n'importe quel code correctement si le code est bien commenté. Vous pouvez ajouter un commentaire de plusieurs manières dans un script bash. La façon dont vous pouvez ajouter des commentaires sur une seule ligne et sur plusieurs lignes dans un script bash est illustrée dans cette partie. Créez un fichier bash avec le script suivant pour connaître l'utilisation du commentaire bash. Ici, le symbole '#' est utilisé pour ajouter un commentaire sur une seule ligne et un guillemet simple (') avec ':' est utilisé pour ajouter des commentaires sur plusieurs lignes.







bash_commentaire.sh



#!/bin/bash
#Prendre un nombre en entrée
chassèrent « Entrez un numéro »
lireà
:'
Vérifiez que le numéro d'entrée est
inférieur à 10 ou supérieur à 10 ou égal à 10
'

si [[ $ un -lt dix ]]
alors
chassèrent 'Le nombre est inférieur à 10'
elif [[ $ un -gt dix ]]
alors
chassèrent 'Le nombre est supérieur à 10'
autre
chassèrent 'Le nombre est égal à 10'
être

Sortir:



Exécutez le script.





$frapperbash_commentaire.sh

Ici, le script est exécuté trois fois avec les valeurs d'entrée 3, 10 et 90. La sortie suivante apparaîtra.



Si vous voulez en savoir plus sur les commentaires bash, vous pouvez vérifier ce tuto .

Aller en haut

commande echo

La commande `echo` est utilisée dans bash pour imprimer la sortie dans le terminal. Diverses options peuvent être utilisées avec la commande echo dans bash pour imprimer la sortie de différentes manières. Créez un fichier bash avec le script suivant pour connaître les deux utilisations simples de la commande `echo`. Ici, la première commande `echo` imprimera un texte simple avec une nouvelle ligne et la deuxième commande echo imprimera un texte simple sans nouvelle ligne.

echo_test.sh

#!/bin/bash
#Imprimer le premier texte
chassèrent 'Imprimer le texte avec une nouvelle ligne'
#Imprimer le deuxième texte
chassèrent -n 'Imprimer le texte sans nouvelle ligne'

Sortir:

Exécutez le script.

$frapperecho_test.sh

La sortie suivante apparaîtra après l'exécution de la commande ci-dessus.

Il existe de nombreuses autres utilisations de la commande `echo` dans bash. Vous pouvez consulter ce tutoriel pour en savoir plus sur la commande `echo`.

Aller en haut

Variables

La déclaration de variable est une partie nécessaire de tout langage de programmation. Les variables Bash peuvent être déclarées de différentes manières. Lorsqu'une valeur est affectée à une variable, aucun symbole n'est utilisé au début de la variable. Le symbole '$' est utilisé avec le nom de la variable au moment de la lecture de la valeur de la variable. La variable peut être utilisée à partir du terminal ou peut être utilisée dans n'importe quel script bash.

Les commandes suivantes déclareront une variable de chaîne nommée mystr avec une valeur particulière et imprimer ensuite la valeur de la variable dans le terminal.

$mystr=« J'aime la programmation bash »
$chassèrent $mystr

Sortir:

Créez un fichier bash avec le script suivant. Deux variables sont déclarées ici. Ceux-ci sont $ un et $ b . Si la valeur d'entrée qui est stockée dans $ un est égal à $ b puis le message, Les nombres sont égaux sera imprimé autrement Les nombres ne sont pas égaux sera imprimé.

var.sh

#!/bin/bash
chassèrent « Entrez un numéro »
lireà
b=100
si [[ $ un -eq $ b ]]
alors
chassèrent « Les nombres sont égaux »
autre
chassèrent « Les nombres ne sont pas égaux »
être

Sortir:

Exécutez le script.

$frappervar.sh

La commande ci-dessus est exécutée deux fois avec les valeurs 56 et 100. La sortie suivante apparaîtra.

Si vous voulez en savoir plus sur les variables bash, vous pouvez vérifier ce tuto .

Aller en haut

Instruction conditionnelle

Comme un autre langage de programmation, vous pouvez utiliser une instruction conditionnelle dans bash. ' Si-alors-sinon ' et ' Cas Les instructions ' sont principalement utilisées pour implémenter des instructions de condition dans n'importe quel langage de programmation. L'utilisation de l'instruction conditionnelle en utilisant 'si' est présentée dans cette section de ce didacticiel. Créez un fichier bash avec le script suivant où l'instruction conditionnelle est utilisée. Ici, deux valeurs seront extraites de l'utilisateur en entrée et stockées dans les variables, $code , et $age . L'instruction 'if' est utilisée pour vérifier la valeur de $age est supérieur ou égal à 18 et la valeur de la $code est 1100 . Si les deux conditions sont vraies, le message, Vous avez le droit de voir le film sera imprimé autrement Vous n'êtes pas autorisé à voir le film sera imprimé.

cond.sh

#!/bin/bash

chassèrent 'Entrez votre code'
lirecode
chassèrent 'Entrez votre âge'
lireâge

si [[ $age -donner 18 && $code -eq '1100' ]]
alors
chassèrent « Vous avez le droit de voir le film »
autre
chassèrent « Vous n'êtes pas autorisé à voir le film »
être

Sortir:

Exécutez le script.

$frappercond.sh

La sortie suivante apparaîtra après avoir pris différentes valeurs d'entrée. 1100 est donné comme code et 5 est donné comme âge pour la première exécution et si la condition renvoie faux pour ces valeurs. 1100 est donné comme code et 45 est donné comme âge pour la deuxième exécution qui renvoie true pour la condition if.

Si vous voulez en savoir plus sur l'instruction conditionnelle bash, vous pouvez consulter ce didacticiel.

Aller en haut

Boucles

Lorsque certaines parties du script doivent être exécutées plusieurs fois, la boucle est utilisée pour effectuer la tâche. Bash prend en charge trois types de déclaration de boucles comme les autres langages. Ce sont des boucles pour, pendant et jusqu'à. En fonction des exigences de programmation, une boucle particulière est utilisée dans le script. Les utilisations de ces trois types de boucles sont illustrées dans cette section à l'aide d'exemples simples.

Utilisation de la boucle for

Créez un fichier bash avec le script suivant où ` pour` boucle est utilisée pour l'itération. `pour` loop est principalement utilisé pour itérer une liste de données ou un tableau. Ici, une liste de noms de jours de la semaine est utilisée et chaque nom de jour de la semaine est itéré à l'aide de la boucle for. 'si' L'instruction est utilisée pour imprimer un message particulier en fonction du nom du jour de la semaine.

pour.sh

#Lire un nom de jour de la semaine à chaque itération de la boucle
pourjournéedanslundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche
faire

#Vérifiez que le nom du jour de la semaine est lundi ou jeudi
si [[ $ jour=='Lundi' || $ jour=='Jeudi' ]]
alors
chassèrent 'Rencontre le$ jourà 9h30'

#Vérifiez que le nom du jour de la semaine est mardi ou mercredi ou vendredi
elif [[ $ jour=='Mardi' || $ jour=='Mercredi' || $ jour=='Vendredi' ]]
alors
chassèrent 'Formation sur$ jourà 11h00
autre

#Imprimer « Vacances » pour les autres jours
chassèrent '$ jourc'est les vacances'
être
terminé

Sortir:

Exécutez le script.

$frapperpour.sh

La sortie suivante apparaîtra après l'exécution du script.

Si vous voulez en savoir plus sur bash for loop, vous pouvez consulter ce tutoriel.

Utilisation de la boucle while

Créez un fichier bash avec le script suivant où ` tandis que ` boucle est utilisée pour l'itération. Ce script imprimera les nombres de 1 à 20 qui sont pairs et divisibles par 5. Ici, compteur $ La variable est utilisée pour contrôler l'itération de la boucle et la valeur de cette variable est incrémentée de 1 à chaque itération. Lorsque 'si' la condition retournera true puis il affichera la valeur de compteur $ .

#!/bin/bash

#Imprimer le message
chassèrent 'Imprimer les nombres pairs et divisibles par 5'

#Initialiser le compteur
contrer=1

#Itérer la boucle jusqu'à ce que la valeur $counter soit inférieure ou égale à 20
tandis que [ compteur $ -le vingt ]
faire

#Vérifiez que le compteur $ est divisible par 2 et 5
si [[ compteur $%2-eq 0 && compteur $%5-eq 0 ]]
alors
#Imprimer $counter sans saut de ligne
chassèrent 'compteur $'
être

#Incrémenter le compteur de 1 $
((compteur++))
terminé
chassèrent 'Terminé'

Sortir:

$frappertandis que.sh

Il n'y a que des nombres compris entre 1 et 20 qui sont pairs et divisibles par 5. La sortie suivante apparaîtra après l'exécution du script.

Si vous voulez en savoir plus sur bash ` tandis que` boucle alors vous pouvez vérifier ce tuto .

Utilisation de la boucle jusqu'à

Créez un fichier bash avec le script suivant où ` jusqu'à` boucle est utilisée pour l'itération. Ce script imprimera tous les nombres impairs de 0 à 20. $n variable est utilisée dans ce script pour itérer la boucle.

jusqu'à.sh

#!/bin/bash

#Initialiser la variable, n
m=vingt

#Répétez la boucle jusqu'à ce que la valeur de $n soit supérieure à 0
jusqu'à [ $n -lt 0 ]
faire

#Vérifiez que la valeur de n est impaire
si [[ $n%2-gt 0 ]]
alors
chassèrent $n
être

#Incrémenter la valeur de n de 1
((m=$n-1))
terminé

Sortir:

Exécutez le script.

$frapperjusqu'à.sh

Le script imprimera tous les nombres pairs de 20 à 1. La sortie suivante apparaîtra après l'exécution du script.

Aller en haut

Les fonctions

Lorsqu'un bloc de code doit être exécuté plusieurs fois dans un script, la fonction est utilisée pour effectuer la tâche. Vous devrez appeler la fonction par son nom uniquement lorsque le script défini dans la fonction doit être exécuté plusieurs fois plutôt que d'ajouter le même script plusieurs fois. Le premier crochet de début et de fin est utilisé avec le nom de la fonction pour déclarer la fonction dans le script bash. La fonction peut être appelée simplement par le nom de la fonction dans bash. Bash ne prend pas en charge les arguments de fonction comme un autre langage de programmation standard. Mais la valeur peut être transmise à la fonction bash d'une manière différente qui est montrée dans cette section. La valeur peut être renvoyée à partir de la fonction avec l'instruction return ou sans utiliser l'instruction return.

Créez un fichier bash avec le script suivant pour savoir comment les fonctions peuvent être déclarées et appelées dans le script bash. Trois fonctions sont déclarées dans le script. La première fonction est déclarée pour imprimer un message simple, Programmation Bash pour débutant . La deuxième fonction est déclarée pour affecter une valeur de chaîne dans une variable, $ return_str qui s'imprimera, Apprendre la programmation bash avec LinuxHint après avoir appelé la fonction. La troisième fonction est déclarée pour lire une valeur d'argument en tant que rayon de cercle qui sera fourni au moment de l'appel de la fonction. Ici, local est utilisé pour lire la valeur de l'argument. Cette fonction calculera l'aire du cercle en fonction de la valeur du rayon en utilisant la formule, ou2 et imprimez la valeur de surface calculée.

func.sh

#!/bin/bash

#Déclarer une fonction simple
fonctionprint_message()
{
chassèrent 'Programmation Bash pour débutant'
}

#Déclarer une fonction pour renvoyer une valeur de chaîne
fonctionret_strdata()
{
#Initialiser la variable avec une valeur de chaîne
return_str='Apprendre la programmation bash avec LinuxHint'
}

#Déclarer une fonction pour lire la valeur de l'argument
fonctioncalculer_aire()

#Lire la valeur de l'argument passé
local rayon=1 $
Région= $(chassèrent $rayon*$rayon*3.14

#Appelez la fonction pour imprimer un message simple
print_message

#Appeler la fonction qui affectera une valeur de chaîne dans une variable
ret_strdata

#Imprimer la valeur de la variable
chassèrent $ return_str

#Lire la valeur du rayon
chassèrent 'Entrez la valeur du rayon'
liretravail

#Appelez la fonction avec la valeur du rayon
calculer_aire$ rad

Sortir:

Exécutez le script.

$frapperfunc.sh

La sortie suivante apparaîtra après l'exécution du script. Les deux premières lignes s'imprimeront en appelant les fonctions, print_message() et ret_strdata () . La dernière ligne s'imprimera en appelant la fonction, calculer_aire () avec la valeur de rayon d'entrée prise.

Si vous voulez savoir comment renvoyer une chaîne à partir de la fonction bash, vous pouvez ce tuto l.

Aller en haut

Appel de programmes dans un script

Vous pouvez utiliser de nombreux types de commandes pour appeler d'autres programmes dans n'importe quel script bash, comme source, bash, eval, l'exécutif , etc. Supposons trois fichiers bash, ajouter.sh , soustraire.sh, multiplier.sh et division.sh créé pour effectuer des additions, soustractions, multiplications et divisions. Ici, soustraire.sh et division.sh lire les arguments de la ligne de commande. Le script de ces quatre fichiers est donné ci-dessous.

ajouter.sh

#!/bin/bash
à=60
b=40
((résultat=$ un+$ b))
chassèrent 'L'addition de$ un+$ b=$résultat'

sousract.sh

#!/bin/bash
à=1 $
b=2 $
((résultat=$ un-$ b))
chassèrent 'La soustraction de$ un-$ b=$résultat'

multiplier.sh

#!/bin/bash
((résultat=1 $*2 $))
chassèrent 'La multiplication de $1 et $2 est$résultat'

diviser.sh

#!/bin/bash
à=1 $
b=2
((résultat=$ un/$ b))
chassèrent 'La division de$ unpar$ best$résultat'

Créez un fichier bash nommé, callpro.sh avec le script suivant pour appeler les fichiers bash mentionnés à l'aide des commandes source, bash, eval et exec. Vous devez définir l'autorisation d'exécution pour les quatre fichiers ci-dessus avant d'exécuter le script suivant. La commande `source` est utilisée pour appeler ajouter.sh déposer. La commande `bash` est utilisée pour exécuter le fichier subtract.sh. La commande `eval` est utilisée pour exécuter le fichier Multiplier.sh. Deux valeurs d'entrée sont envoyées en tant qu'arguments de ligne de commande pour la commande « eval ». La dernière commande est la commande exec qui fonctionne uniquement avec le chemin absolu. Pour cela, le nom de chemin complet du fichier Divide.sh est donné dans le script.

callpro.sh

#!/bin/bash
script1='add.sh'
script2='soustraire.sh'
script3='multiplier.sh'
script4='/home/fahmida/code/divide.sh'

la source '$script1'

frapper $script2 cinquante vingt

chassèrent 'Entrez la valeur de a'
lireà
chassèrent 'Entrez la valeur de b'
lireb
évaluer frapper $script3 $ un $ b
l'exécutif $script4 30

Sortir:

Exécutez le script.

$frappercallpro.sh

La sortie suivante apparaîtra après l'exécution du script.

Aller en haut

Création de menus

Il existe une commande utile dans bash pour créer un menu simple appelé 'sélectionner' commander. Différents types de menus peuvent être créés en utilisant cette commande. Une liste de données particulière est utilisée pour créer un menu par cette commande. Créez un fichier bash avec le code suivant pour voir l'utilisation de 'sélectionner' commande pour créer un menu. Dans cet exemple, la liste de cinq éléments sera imprimée sous forme de menu et invitera l'utilisateur à choisir n'importe quelle langue dans la liste. La valeur sélectionnée sera stockée dans la variable, $langue qui est imprimé plus tard en concaténant avec une autre chaîne. Le script demandera en permanence de sélectionner la langue jusqu'à ce que l'utilisateur appuie sur 6 pour terminer à partir du script.

menu.sh

#!/bin/bash

#Imprimer le message pour l'utilisateur
chassèrent « Sélectionnez votre langue préférée »

# Définir la liste d'un élément de menu
sélectionnerLanguedansC# Sortie Java PHP Python Bash
faire
#Imprimer la valeur sélectionnée
si [[ $langue=='Sortir' ]]
alors
sortir 0
autre
chassèrent 'La langue sélectionnée est$langue'
être
terminé

Sortir:

Exécutez le script.

$frappermenu.sh

Selon la sortie suivante, l'utilisateur a appuyé sur 3 pour la première fois qui a imprimé PHP et a appuyé sur 6 pour la deuxième fois qui a terminé le script.

Si vous voulez en savoir plus sur la création de menu bash avec `select`, vous pouvez visiter ce tutoriel.

Aller en haut

Traitement de la ligne de commande

Parfois, nous devons fournir des valeurs d'entrée lors de l'exécution du script à partir de la ligne de commande. Cette tâche peut être effectuée de deux manières dans bash. Une façon est d'utiliser des variables d'argument et une autre est d'utiliser la fonction getopts. La lecture des données d'entrée de la ligne de commande à partir du terminal à l'aide de la variable d'argument est illustrée dans cette section.

Créez un fichier bash avec le script suivant pour voir l'utilisation de la lecture de la valeur de l'argument de la ligne de commande. Ce script lira trois arguments de ligne de commande qui seront stockés dans les variables $operand1, $operand2 et $operator. Pour exécuter le script correctement, les première et troisième valeurs d'argument doivent être le nombre et la deuxième valeur d'argument doit être l'un des quatre opérateurs arithmétiques ('+', '-', '/', 'x'). si L'instruction vérifiera la valeur de $operator et effectuera l'opération en fonction de l'opérateur et imprimera la valeur.

cl1.sh

#!/bin/bash

#Imprimer les variables d'argument
chassèrent « Les valeurs des arguments sont : 1 $ 2 $ 3 $ »

# Stocker les valeurs des arguments
opérande1=1 $
opérande2=3 $
opérateur=2 $

#Vérifiez la valeur de l'argument de la 2ème commande pour effectuer l'opération arithmétique
si [[ $opérateur=='+' ]]
alors
((résultat=$ opérande1+$ opérande2))
elif [[ $opérateur=='-' ]]
alors
((résultat=$ opérande1-$ opérande2))
elif [[ $opérateur=='X' ]]
alors
((résultat=$ opérande1*$ opérande2))
elif [[ $opérateur=='/' ]]
alors

((résultat=$ opérande1/$ opérande2))
être

# imprimer le résultat
chassèrent -Et 'Le résultat est =$résultat'

Sortir:

Exécutez le script.

$frappercl1.sh

Le script est exécuté quatre fois pour quatre types d'opérateurs arithmétiques. La sortie suivante apparaîtra pour les valeurs d'argument, 6 + 3, 6 – 3, 6 x 3 et 6 / 3 .

Les valeurs d'argument peuvent être transmises avec une paire nom-valeur dans bash. Créez un fichier bash avec le script suivant pour montrer comment lire les valeurs d'argument avec le nom. Le script lira deux variables d'argument. Les valeurs d'argument avec le nom sont imprimées dans la première instruction du script. Ensuite, une boucle for est utilisée pour itérer le tableau qui contient les valeurs d'argument de la ligne de commande. Chaque élément du tableau est séparé en une paire clé-valeur à l'aide de la commande « cut ». Ensuite, l'instruction case est utilisée pour imprimer un message particulier en fonction de la valeur de la clé.

cl2.sh

. #! /un m/frapper

#Imprimer les variables d'argument
chassèrent « Les valeurs des arguments sont : 1 $ 2 $ »

#Lire chaque argument séparément en utilisant la boucle for
pouren colèredans ' [email protégé] '
faire

#Séparer le nom et la valeur de l'argument
clé= $(chassèrent $ argument | couper -f1 -ré=)
valeur= $(chassèrent $ argument | couper -f2 -ré=)

#Imprimer le message en fonction du nom de l'argument
Cas $clé dans
Nom) chassèrent 'Nom de l'étudiant =valeur $';;
marque) chassèrent 'Note obtenue =valeur $' ;;
*)
esac
terminé

Sortir:

Exécutez le script avec les arguments de ligne de commande suivants.

$frappercl2.shNom=Abir Hossainmarque=90

Deux arguments de ligne de commande sont fournis dans les commandes ci-dessus. Ceux-ci sont nom=Abir Hossain et note=90 . Nom et Des marques sont séparés par le script et deux valeurs sont imprimées après le formatage de la sortie.

Traitement des arguments de ligne de commande à l'aide getopts La fonction n'est pas abordée dans ce tutoriel. Si vous voulez en savoir plus sur le traitement de la ligne de commande en utilisant getopts fonction, vous pouvez visiter ce tuto .

Aller en haut

Arithmétique

Faire des opérations arithmétiques est une exigence commune de tout langage de programmation. Bash effectue l'opération arithmétique d'une manière différente d'un autre langage de programmation standard. Il existe plusieurs façons d'effectuer des opérations arithmétiques dans bash. Une des manières simples de faire l'opération arithmétique est montrée dans cette section. Créez un fichier bash avec le script suivant. Quatre types d'opérations arithmétiques sont présentés dans ce script. Une simple sommation et des opérations de division sont affichées en utilisant des doubles premiers crochets au début du script. Ensuite, l'opération de pré-incrémentation est affichée. Enfin, la façon d'utiliser l'opérateur abrégé est indiquée dans la dernière partie du script.

arith.sh

#!/bin/bash
# Calculer la somme
résultat= $((cinquante+25))
# Imprimer la valeur de sommation
chassèrent 'somme =$résultat'

# Calculer la division
résultat= $((cinquante/25))
# Imprimer la valeur de la division
chassèrent 'division =$résultat'

# Attribuer une valeur à N
N=dix
# Faire du pré-incrément
((--N))
# Affiche la valeur de N
chassèrent 'Valeur après décrémentation =$N'

# Utilisation de l'opérateur abrégé
((N +=dix ))
# Affiche la valeur de N
chassèrent 'Valeur après addition de 10 =$N'

Sortir:

Exécutez le script.

$frapperarith.sh

La sortie suivante apparaîtra après l'exécution du script.

Toutes les opérations arithmétiques sont effectuées en utilisant des doubles crochets dans ce script ci-dessus. Mais vous pouvez utiliser ' laisser ',' expr ' et ' avant JC ' commande pour effectuer l'opération arithmétique en bash. Si vous voulez en savoir plus sur ces commandes pour effectuer des opérations arithmétiques bash, vous pouvez visiter ce didacticiel.

Aller en haut

Manipulation des cordes

De nombreux types de tâches peuvent être effectués avec les données de chaîne dans bash. Certains consistent à concaténer une chaîne, à comparer une chaîne, à diviser une chaîne, à changer la casse de la chaîne, etc. Il n'y a pas de fonctions de chaîne intégrées comme d'autres langages standard dans bash pour effectuer les opérations de chaîne. Certaines manipulations de chaînes courantes sont abordées dans cette section de ce didacticiel.

Chaîne de concaténation

L'ajout de deux ou plusieurs chaînes est appelé concaténation de chaînes. La chaîne est assemblée en bash en se plaçant l'une après l'autre. Créez un fichier bash avec le script suivant pour montrer l'utilisation de la concaténation de chaînes. Deux variables de chaîne sont initialisées et imprimées après la combinaison des variables. Ici, le contenu de $chaîne1 et $chaîne2 seront fusionnés et imprimés.

concat.sh

#!/bin/bash

#Initialiser la première variable de chaîne
chaîne1='J'apprécie '
#Initialiser la deuxième variable de chaîne
chaîne2='Programmation Bash'
#Imprimer après avoir combiné les deux chaînes
chassèrent '$chaîne1$chaîne2'

Sortir:

Exécutez le script.

$frapperconcat.sh

La sortie suivante apparaîtra après l'exécution du script.

Vous pouvez en savoir plus sur la concaténation de chaînes à partir de ce didacticiel.

Aller en haut

Comparer la chaîne

Bash utilise différents types d'opérateurs pour comparer les données de chaîne. Créez un fichier bash avec le script suivant pour montrer comment comparer deux données de chaîne. Une valeur de chaîne est prise comme entrée dans le script qui est comparée à une autre chaîne. Si la valeur correspond alors un message, Vous aimez Python sera imprimé autrement Vous aimez PERL sera imprimé.

comparer.sh

#!/bin/bash
chassèrentEntrez n'importe quelle valeur de chaîne
liretexte

#Vérifiez que les données d'entrée sont équivalentes à Python
si [ $texte=='Python' ];alors
chassèrent « Tu aimes Python. »
autre
chassèrent « Vous aimez PERL »
être

Sortir:

Exécutez le script.

$frappercomparer.sh

La sortie suivante apparaîtra après l'exécution du script où la valeur d'entrée est « PERL ».

Vous pouvez en savoir plus sur la comparaison de chaînes à partir de ce tuto .

Fractionnement de la chaîne

Bash n'a pas de fonction de division intégrée pour diviser les données de chaîne. Les données de chaîne peuvent être divisées de plusieurs manières dans bash en fonction de différents types de délimiteurs. Créez un fichier bash avec le script suivant pour montrer comment les données de chaîne peuvent être divisées en bash. Une valeur de chaîne est prise en entrée. Ce script divisera la valeur de $texte basé sur l'espace. Ici le IFS variable est utilisée pour définir le délimiteur. 'lire' La commande est utilisée ici pour diviser la valeur du texte et stocker les valeurs dans un tableau. pour loop est utilisé pour itérer le tableau et afficher la valeur de chaque élément.

diviser.sh

#!/bin/bash
#Entrez une valeur de chaîne
chassèrentEntrez une valeur de chaîne
liretexte
# Définir le délimiteur
IFS=''
#Split la valeur de $text dans un tableau basé sur le délimiteur d'espace
lire arr<<< '$texte'
# Affiche chaque valeur du tableau
pourvaleurdans '${arr[@]}';
faire
imprimer 'valeur $ '
terminé

Sortir:

Exécutez le script.

$frapperdiviser.sh

La sortie suivante apparaîtra après avoir pris l'entrée, Apprendre la programmation Bash . Cette valeur d'entrée est un texte de trois mots. Ainsi, la chaîne est divisée en trois parties.

Vous pouvez en savoir plus sur la comparaison de chaînes à partir de ce tuto .

Changer la casse de la chaîne

La plupart des langages de script ont des fonctions intégrées pour changer la casse des données de chaîne. Mais le cas des données de chaîne peut être modifié dans bash en utilisant `tr` commande ou en utilisant ':supérieur' et ':inférieur' mots clés. Créez un fichier bash avec le script suivant pour connaître les moyens de changer la casse dans bash. Ici, les premières données de chaîne sont converties en majuscules en utilisant '^^' symbole et la deuxième chaîne est convertie en minuscule en utilisant `tr` commander. `tr` La commande recherchera toutes les lettres majuscules dans la chaîne et convertira les caractères en minuscules.

cas.sh

#!/bin/bash

#Initialiser la première chaîne de données
texte 1=' [email protégé] '

#Imprime la valeur de $text1 en convertissant tous les caractères en majuscules
chassèrent ${courriel^^}

#Initialiser les données de la deuxième chaîne
texte2='Bases de la programmation Bash'

#Imprime la valeur de $text2 en convertissant toutes les majuscules en minuscules
chassèrent $text2 | N.-É. [:supérieur:] [:inférieur:]

Sortir:

Exécutez le script.

$frappercas.sh

La sortie suivante apparaîtra après l'exécution du script.

Vous pouvez en savoir plus sur la comparaison de chaînes à partir de ce tuto .

Aller en haut

Lecture de données de chaîne à travers la boucle

Les données de chaîne fonctionnent comme un tableau de caractères pour n'importe quel langage de programmation. Comment ' pour La boucle ' peut être utilisée pour lire les données de chaîne dans bash est présentée dans cette section. Créez un fichier de base avec le script suivant pour lire chaque partie de la valeur de chaîne à l'aide de la boucle for.

readstr.sh

#!/bin/bas
# Lire chaque mot d'un texte en utilisant la boucle for
pourvaleurdansProgrammation Bashpourles débutants
faire
chassèrent valeur $
terminé

Sortir:

Exécutez le script.

$frapperreadstr.sh

La sortie suivante apparaîtra après l'exécution du script.

Vous pouvez en savoir plus sur l'itération des données de chaîne en utilisant la boucle de ce tuto .

Aller en haut

Renvoyer les codes de retour d'un script et attraper dans un autre script

Un script bash peut récupérer les codes de retour d'un autre script en appelant le script et en utilisant « $ ? » pour lire la valeur de retour. Supposons qu'un fichier bash nommé premier.sh renvoie un code après exécution. Créez un autre fichier bash nommé seconde.sh et ajoutez le script suivant pour récupérer la valeur de retour et effectuer d'autres tâches. Le code des deux fichiers est donné ci-dessous. premier.sh le fichier sera appelé depuis seconde.sh fichier au début du script. premier.sh renverra un code de sortie basé sur la valeur d'entrée. second.sh attrapera le code en « $ ? » et comparer avec 1. Si les deux valeurs sont égales, alors il imprimera, Le nombre saisi est supérieur à 100 , sinon il s'imprimera, Le nombre saisi est inférieur ou égal à 100 .

premier.sh

#!/bin/bash

chassèrent 'Entrez une valeur numérique'
lirem

# Vérifiez que la valeur d'entrée est inférieure ou égale à 100 ou non
si [[ $n -le 100 ]]
alors
sortir 0
autre
sortir 1
être

seconde.sh

# ! /bin/bash

#Exécutez le fichier, first.sh
frapper 'premier.sh'

#Vérifiez que le code retour est égal à 1 ou non
si [ $? -eq 1 ]
alors
chassèrent 'Le nombre saisi est supérieur à 100'
autre
chassèrent 'Le nombre saisi est inférieur ou égal à 100'
être

Sortir:

Exécutez le script.

$frapperseconde.sh

La sortie suivante apparaîtra lorsque le script est exécuté par 55 et 110 deux fois.

Aller en haut

Lecture et écriture dans des fichiers

La lecture et l'écriture de fichiers sont des exigences courantes de la programmation bash. Bash n'a pas de fonction intégrée comme un autre langage pour lire ou écrire le fichier. Il existe plusieurs façons de lire le fichier dans bash. La façon la plus courante de lire ou d'écrire un fichier dans bash est d'utiliser 'chat' commander. Mais cette commande est utilisée pour lire tout le contenu du fichier à la fois. Vous pouvez également lire n'importe quel fichier ligne par ligne en utilisant n'importe quelle boucle et 'lire' commander. En utilisant l'opérateur de redirection, '>' , vous pouvez écrire des données dans n'importe quel fichier bash. Si vous souhaitez ajouter des données dans n'importe quel fichier, vous devez utiliser '>>' opérateur. Les opérations de lecture et d'écriture de fichiers sont présentées dans la partie suivante de cette section.

Lecture de fichier dans bash

Créez un fichier bash avec le script suivant pour lire un fichier existant nommé ' hardware.txt '. Le contenu de ce fichier est donné ci-dessous. Dans le script, tout le contenu du fichier est lu par 'chat' la commande d'abord et la suivante, tandis que la boucle est utilisée pour lire le fichier ligne par ligne.

hardware.txt

Surveiller
Clavier
Souris
Scanner
Imprimante

readfile.sh

#!/bin/bash

chassèrent 'Lecture du fichier à l'aide de la commande cat'

# Lire le contenu du fichier en utilisant la commande `cat`
teneur=``chathardware.txt``
chassèrent $contenu

chassèrent 'Lecture du fichier ligne par ligne à l'aide d'une boucle'

# Attribuez le nom de fichier
nom de fichier='hardware.txt'

# Chaque ligne du fichier sera lue à chaque itération de la boucle
tandis que lireligne;
faire
# imprime la ligne
chassèrent $ligne
terminé<$nom de fichier

Sortir:

Exécutez les commandes suivantes.

$chathardware.txt
$frapperreadfile.sh

Ici, la première commande imprimera le contenu du fichier, hardware.txt sans exécuter de script bash et la deuxième commande exécutera le script de readfile.sh et imprimez le contenu du fichier deux fois en utilisant 'chat' commande et 'lire' commande avec la boucle while. Vous pouvez visiter ce Didacticiel pour en savoir plus sur la lecture de fichier ligne par ligne.

Ecrire un fichier en bash

Créez un fichier bash avec le script suivant pour écrire un nouveau contenu dans un nouveau fichier et ajouter des données dans ce fichier.

fichier d'écriture.sh

#!/bin/bash

chassèrent 'Entrez du texte'
#Lire les données de chaîne
lirestr1
#Ajouter des données d'entrée dans le fichier pour la première fois
chassèrent $str1 >test.txt

chassèrent 'Entrez un autre texte'
#Lire une autre chaîne de données
lirestr2
#Ajouter des données d'entrée à la fin du fichier
chassèrent $str2 >>test.txt

#Afficher le contenu complet du fichier
chassèrent ``chattest.txt``

Sortir:

Exécutez le script.

$frapperfichier d'écriture.sh

La sortie suivante apparaîtra après l'exécution du script.

Aller en haut

Tuyaux

Pipe est utilisé pour rediriger toute sortie de commande vers une autre entrée de commande. Il peut être utilisé parmi différents types de commandes bash pour générer une sortie spécifique. L'entrée standard est reliée à la sortie standard sous Linux par pipe. Vous devez définir la commande en séquence avec le symbole pipe ( | ) pour obtenir la sortie souhaitée. Deux ou plusieurs commandes peuvent être exécutées ensemble dans une seule commande en utilisant pipe. Vous devez exécuter plusieurs commandes sur plusieurs lignes sans pipe pour effectuer la même tâche. Ainsi, l'utilisation de tuyaux est très bénéfique pour effectuer de nombreux types de tâches sous une forme courte.

syntaxe:

command1|commande2|...

Ici, la sortie de la commande1 sera passée en tant qu'entrée de la commande2.

Le même type de tâche est effectué avec et sans tuyau dans la partie suivante de cette section. Supposons un fichier texte nommé marques.txt est donné avec les données suivantes.

marques.txt

Asraf CSE-409 79

Kabir CSE-304 95

Keya CSE-101 67

Asraf CSE-304 88

Keya CSE-409 90

Asraf CSE-101 92

Vous devez trier les données du dossier et découvrir et imprimer toute l'entrée du nom de l'étudiant 'K Oui ' . Vous pouvez effectuer cette tâche en exécutant plusieurs commandes sans utiliser de canal illustré dans la section suivante. Les commandes suivantes devront être exécutées pour obtenir la sortie souhaitée. La première commande va trier le fichier. La deuxième commande recherchera l'entrée « K Oui ' en utilisant ` saisir ` commande et stocke la sortie dans un fichier temporaire.txt déposer. La troisième commande comptera le nombre total de lignes d'un temp.txt fichier en utilisant `wc` commander.

$sortemarques.txt
$saisir 'Keya'marques.txt>temp.txt
$wc -ltemp.txt

Sortir:

Deux entrées de l'étudiant, 'Keya' existent dans le fichier. Ainsi, après avoir exécuté les commandes ci-dessus, la sortie suivante apparaîtra.

Vous pouvez facilement fusionner les trois commandes ci-dessus et obtenir le même résultat en exécutant une seule commande avec un tube affiché dans la commande suivante. Aucun fichier temporaire n'est requis ici pour obtenir la sortie. Ici, la sortie du ` sorte ` la commande sera passée en entrée de ` saisir ` commande et la sortie du ` saisir La commande ` sera passée en entrée pour le `wc` commander.

$sortemarques.txt| saisir 'Keya' | wc -l

Sortir:

Après avoir exécuté la commande ci-dessus, vous obtiendrez la sortie suivante comme la sortie de la commande précédente. La sortie de la commande sera 2.

Aller en haut

Conclusion:

Les sujets les plus utiles et nécessaires du langage de script bash sont essayés de couvrir dans ce didacticiel. J'espère que le lecteur bénéficiera de la lecture de ce didacticiel et sera capable d'écrire un script bash plus efficacement.