Je ne peux pas me rappeler comment capturer le résultat de l'exécution dans une variable dans un script bash.
En gros, j'ai un dossier plein de fichiers de sauvegarde du format suivant: backup--mon.hostname.com--1309565.tar.gz
Je veux parcourir une liste de tous les fichiers et extraire la partie numérique du nom de fichier et faire quelque chose avec, donc je fais ceci jusqu'à présent:
HOSTNAME=`hostname`
DIR="/sauvegardes/"
SUFFIX=".tar.gz"
PREFIX="backup--$HOSTNAME--"
TESTNUMBER=9999999999
#se déplacer dans le dossier de sauvegarde
cd $DIR
#obtenir une liste de tous les fichiers de sauvegarde là-dedans
FILES=$PREFIX*$SUFFIX
#Parcourir la liste
for F in $FILES
do
#extraire le nombre du nom de fichier
NUMBER=$F | sed s/$PREFIX//g | sed s/$SUFFIX//g
#comparer le nombre avec un autre nombre
if [ $NUMBER -lg $TESTNUMBER ]
#faire quelque chose
fi
done
Je sais que la partie "$F | sed s/$PREFIX//g | sed s/$SUFFIX//g"
extrait correctement le nombre (bien que je sache qu'il pourrait y avoir une meilleure façon de le faire), mais je ne peux tout simplement pas me rappeler comment obtenir ce résultat dans NUMBER pour pouvoir le réutiliser dans l'instruction if ci-dessous.