#!/bin/sh
…
Ce shebang indique que ce script devra être interprété par le shell accessible par /bin/sh
Le shell accessible par le fichier de type lien /bin/sh
est :
michel@deb114x:~$ readlink -f /bin/sh
/usr/bin/dash
michel@deb114x:~$
Donc, ce n’est pas le shell bash
qui interprétera les lignes de commandes contenues dans ce script,
mais le shell dash
…
SOA="20210923000001" …
Il vaut mieux utiliser des caractères en lettre minuscules pour nommer les variables créées dans un script car ça permet de différencier plus facilement les variables crées dans et pour le script
des variables d’environnement dont les noms sont en lettre majuscules
…
SOA="20210923000001" | egrep -ho '[0-9]{8,}')
…
La parenthèse finale est sans doute une erreur de frappe.
…
SOA="20210923000001" | egrep -ho '[0-9]{8,}'
…
Comme la commande d’affectation précédant la commande pipe |
ne retourne aucune sortie,
la commande pipe |
ne retournera rien en entrée de la commande egrep
donc, la commande egrep
ne retournera rien non plus en sortie.
D’autre part, la commande grep
est utilisée pour extraire des lignes d’un fichier texte
Voir :
man grep
soa="20210923000001"
serial_soa="$(echo ${soa:8})"
la syntaxe ${soa:8}
fonctionne avec l’interpréteur de commande bash
mais elle ne fonctionnera pas avec l’interpréteur de commande dash
Avec le shell bash
Il n’est pas nécessaire d’utiliser la commande echo
pour affecter à la variable nommée serial_soa
la valeur correspondant aux derniers caractères qui suivent le 8ème caractère de la valeur qui aurait été affectée à la variable nommée soa
michel@deb114x:~$ soa="20210923000001"
michel@deb114x:~$ serial_soa="${soa:8}"
michel@deb114x:~$
michel@deb114x:~$ echo "$serial_soa"
000001
michel@deb114x:~$