J'utilise cette page comme pense-bête sur la programmation Bash. J'y note mes trouvailles, astuces et autres petits bouts de scripts. C'est avant tout un aide-mémoire qu'autre chose. Mais si cela peut aider d'autres personnes, c'est bien aussi.
L'ensemble des commandes qui seront présentées ci-dessous ont été réalisées sur des systèmes Debian/Ubuntu.
Je compléterai cette page au fur et à mesure, n'hésitez pas à passer régulièrement sur cette page.
Pour compter le nombre de lignes d'un fichier, il y a plusieurs méthodes :
wc -l nom_fichier
Cela affiche le nombre de ligne mais aussi le nom du fichier.
cat nom_fichier | wc -l
Ici nous avons le résultat souhaité.
Autre méthode
sed -n '$=' nom_fichier </bash> ou encore <code bash> awk 'END {print NR}' nom_fichier
peut aussi faire l'affaire.
Le code de retour d'une commande est un mécanisme fourni par le shell Linux. Il signale à l'utilisateur si l'exécution de la commande s'est déroulée correctement ou bien s'il y a eu un problème. Le code de retour est un entier compris entre 0 et 255.
Par convention, un code retour égal à 0 signifie que l'exécution de la commande s'est déroulé sans rencontrer d'erreur.
Nous allons voir comment récupérer ce code erreur et l'insérer dans une variable pour un traitement ultérieur. Dans notre exemple, nous allons vérifier si le service fail2ban a bien démarré.
#!/bin/bash service fail2ban status > /dev/null resultat=$? // Nous utilisons le caractère spécial echo ${resultat}
Explication du code :
Une autre méthode fonctionnant sous Debian 9 :
systemctl status fail2ban.service 1>/dev/null 2>&1; resultat=$? echo ${sresultat}
Les deux exemples ci-dessus afficheront 0 si fail2ban fonctionne. Et 3 si fail2ban est à l'arrêt.
Autres liens rapides pouvant vous intéresser