Recherche de site Web

Naviguer à travers le monde des scripts Linux BASH - Partie III


Les articles précédents suivants de la série « Shell Scripting » ont été très appréciés et c'est pourquoi j'écris cet article pour prolonger le processus d'apprentissage sans fin.

  1. Comprendre les conseils de base du langage de script Linux Shell – Partie I
  2. 5 scripts Shell pour les débutants Linux pour apprendre la programmation Shell – Partie II
Mots-clés bash

Un mot-clé est un mot ou un symbole qui a une signification particulière dans un langage informatique. Les symboles et mots suivants ont des significations particulières pour Bash lorsqu'ils ne sont pas entre guillemets et constituent le premier mot d'une commande.

! 			esac 			select 		} 
case 			fi 			then 		[[ 
do 			for 			until 		]] 
done 			function 		while 		elif
if 			time 			else 		in 		{

Contrairement à la plupart des langages informatiques, Bash permet d'utiliser des mots-clés comme noms de variables, même si cela peut rendre les scripts difficiles à lire. Pour que les scripts restent compréhensibles, les mots-clés ne doivent pas être utilisés pour les noms de variables.

Une commande est implémentée dans le shell sous la forme $(command). Vous devrez peut-être inclure le chemin complet de la commande. par exemple, $ (/bin/date), pour une exécution correcte.

Vous connaissez peut-être le chemin d'un programme spécifique à l'aide de la commande « whereis ». Par exemple, où est la date

[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz

C'est suffisant pour l'instant. Nous ne parlerons pas beaucoup de ces théories maintenant. J'en viens aux scripts.

Déplacer le répertoire de travail actuel

Passez du répertoire de travail actuel à n'importe quel niveau supérieur en fournissant simplement la valeur numérique à la fin du script lors de l'exécution.

#! /bin/bash 
LEVEL=$1 
for ((i = 1; i <= LEVEL; i++)) 
do 
CDIR=../$CDIR 
done 
cd $CDIR 
echo "You are in: "$PWD 
exec /bin/bash

Enregistrez les codes ci-dessus sous « up.sh », sur votre bureau. Rendez-le exécutable (chmod 755 up.sh). Courir:

./up.sh 2 (déplacera le répertoire de travail actuel de deux niveaux au-dessus).
./up.sh 4 (déplacera le répertoire de travail actuel à quatre niveaux plus haut).

Utilisation et domaine d'application

Dans les scripts plus grands qui contiennent un dossier à l'intérieur d'un dossier à l'intérieur… contenant des bibliothèques, des binaires, des icônes, des exécutables, etc. emplacement, vous, en tant que développeur, pouvez implémenter ce script pour vous déplacer vers l'emplacement souhaité de manière très automatisée.

Remarque : For est une boucle dans le script ci-dessus et il continuera à s'exécuter jusqu'à ce que les valeurs soient vraies pour la boucle.

Exemple de sortie
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /

[root@tecmint /]# ./up.sh 4 
You are in: / 

[root@tecmint /]#

Télécharger up.sh

Créer un fichier ou un dossier aléatoire

Créez un fichier (dossier) aléatoire sans risque de duplication.

#! /bin/bash

echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"

Il s’agit d’un script simple mais son fonctionnement n’est pas si simple.

  1. echo‘ : Imprime tout ce qui est écrit entre les guillemets.
  2. '$' : Est une variable shell.
  3. '>>' : La sortie est redirigée vers la sortie de la commande date suivie de l'extension txt.

Nous savons que le résultat de la commande date est date et heure en heure, minute. seconde ainsi que année. Par conséquent, nous pourrions obtenir une sortie sur un nom de fichier organisé sans risque de duplication de nom de fichier. Cela peut être très utile lorsque l'utilisateur a besoin du fichier créé avec un horodatage pour référence future.

Exemple de sortie
[root@tecmint /]# ./randomfile.sh  
Hello server 
Your File is being saved to /home/server/Desktop

Vous pouvez afficher le fichier créé sur le bureau avec la date du jour et l'heure actuelle.

[root@tecmint /]# nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt 
13:51:52 up  3:54,  1 user,  load average: 0.09, 0.12, 0.08

Une implémentation plus détaillée du script ci-dessus est donnée ci-dessous, qui fonctionne sur le principe ci-dessus et est très utile pour collecter les informations réseau d'un serveur Linux.

Télécharger randomfile.sh

Script pour collecter des informations sur le réseau

Recueille des informations réseau sur un serveur Linux. Le script est trop volumineux et il n'est pas possible de publier l'intégralité du code et du résultat du script ici. Il est donc préférable que vous puissiez télécharger le script en utilisant le lien de téléchargement ci-dessous et le tester vous-même.

Remarque : vous devrez peut-être installer le package lsb-core ainsi que d'autres packages et dépendances requis. Apt ou Yum les packages requis. Évidemment, vous devez être root pour exécuter le script car la plupart des commandes utilisées ici sont configurées pour être exécutées en tant que root.

Exemple de sortie
[root@tecmint /]# ./collectnetworkinfo.sh  

The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to your_name@service_provider.com. ktop

Vous pouvez modifier l'adresse e-mail ci-dessus dans votre script pour qu'elle vous soit envoyée par courrier. Le fichier généré automatiquement peut être visualisé.

Télécharger collectnetworkinfo.sh

Script pour convertir les MAJUSCULES en minuscules

Un script qui convertit les MAJUSCULES en minuscules et redirige la sortie vers un fichier texte « small.txt » qui peut être modifié selon les besoins.

#!/bin/bash 

echo -n "Enter File Name : " 
read fileName 

if [ ! -f $fileName ]; then 
  echo "Filename $fileName does not exists" 
  exit 1 
fi 

tr '[A-Z]' '[a-z]' < $fileName >> small.txt

Ce script ci-dessus peut convertir la casse d'un fichier de n'importe quelle longueur en un seul clic de majuscule à minuscule et vice-versa si nécessaire, avec peu de modifications.

Exemple de sortie
[root@tecmint /]# ./convertlowercase.sh  
Enter File Name : a.txt 

Initial File: 
A
B
C
D
E
F
G
H
I
J
K
...

Résultat du nouveau fichier (small.txt) :

a
b
c
d
e
f
g
h
i
j
k
...

Télécharger convertlowercase.sh

Programme de calcul simple

#! /bin/bash 
clear 
sum=0 
i="y" 

echo " Enter one no." 
read n1 
echo "Enter second no." 
read n2 
while [ $i = "y" ] 
do 
echo "1.Addition" 
echo "2.Subtraction" 
echo "3.Multiplication" 
echo "4.Division" 
echo "Enter your choice" 
read ch 
case $ch in 
    1)sum=`expr $n1 + $n2` 
     echo "Sum ="$sum;; 
        2)sum=`expr $n1 - $n2` 
     echo "Sub = "$sum;; 
    3)sum=`expr $n1 \* $n2` 
     echo "Mul = "$sum;; 
    4)sum=`expr $n1 / $n2` 
     echo "Div = "$sum;; 
    *)echo "Invalid choice";; 
esac 
echo "Do u want to continue (y/n)) ?" 
read i 
if [ $i != "y" ] 
then 
    exit 
fi 
done
Exemple de sortie
[root@tecmint /]# ./simplecalc.sh 

Enter one no. 
12 
Enter second no. 
14 
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
1 
Sum =26 
Do u want to continue (y/n)) ? 
y
1.Addition 
2.Subtraction 
3.Multiplication 
4.Division 
Enter your choice 
3 
mul = 14812
Do u want to continue (y/n)) ? 
n

Télécharger simplecalc.sh

Alors avez-vous vu à quel point il était facile de créer un programme puissant permettant des calculs d'une manière aussi simple. Ce n'est pas la fin. Nous rédigerons au moins un autre article de cette série, couvrant une large perspective du point de vue de l’administration.

C'est tout pour le moment. En tant que lecteur et meilleur critique, n’oubliez pas de nous dire combien et ce que vous avez apprécié dans cet article et ce que vous souhaitez voir dans le futur article. Toute question est la bienvenue en commentaire. D’ici là, restez en bonne santé, en sécurité et à l’écoute. Aimez et Partagez et aidez-nous à nous diffuser.