Probleme en shell
Résolu
sAF
-
sAF -
sAF -
Bonjour,
je suis en train de faire un script pour détarer automatiquement des sauvegardes.
les fichiers sont comme ceci:
bidule.0.tar
truc.0.tar
chose.0.tar
chose.1.tar
chose.2.tar
ou chose.x.tar est en fait une compression multi volumes
avec un maximum de 5 volumes
l'idée c'est:
je fais un ls que je met en tableau (je n'ai trouvé que cela pour accéder au fichier N+4 quand je lis ma sortie ls)
je lis le tableau
si je suis sur un fichier de type xx.0.tar et s'il existe le fichier xx.4.tar -> detare 5 volumes
sinon si je suis sur un fichier de type xx.0.tar et s'il existe le fichier xx.3.tar -> detare 4 volumes
et ainsi de suite jusqu'a xx.0.tar ou je detare uniquement ce volume
je me retrouve avec des erreurs:
[0.tar=0.tar: command not found
[1.tar=0.tar: command not found
etc..
je comprends bien qu'il y a un souci dans mes lignes de tests mais je ne trouve pas ou.
si quelqu'un peut m'aider ca serait super :o)
$2 est l'entrée /chemin/ envoyée au fichier
voici le code:
for DIRS in $(ls $2)
do
Tableau_Dir[$i]=$DIRS
#echo $i,${Tableau_Dir[$i]},$DIRS
i=$(($i+1))
done
j=0
while [ $j -lt $i ] ; do
if [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+4))]} -a ${Tableau_Dir[$(($j+4))]#*.}=4.tar] ; then
tar xvMfffff ${Tableau_Dir[$(($j+4))]} ${Tableau_Dir[$(($j+3))]} ${Tableau_Dir[$(($j+2))]} ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+3))]} -a ${Tableau_Dir[$(($j+3))]#*.}=3.tar] ; then
tar xvMffff ${Tableau_Dir[$(($j+3))]} ${Tableau_Dir[$(($j+2))]} ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+2))]} -a ${Tableau_Dir[$(($j+2))]#*.}=2.tar] ; then
tar xvMfff ${Tableau_Dir[$(($j+2))]} ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+1))]} -a ${Tableau_Dir[$(($j+1))]#*.}=1.tar] ; then
tar xvMff ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar] ; then
tar xvMf ${Tableau_Dir[$j]} $2
fi
j=$(($j+1))
done
je suis en train de faire un script pour détarer automatiquement des sauvegardes.
les fichiers sont comme ceci:
bidule.0.tar
truc.0.tar
chose.0.tar
chose.1.tar
chose.2.tar
ou chose.x.tar est en fait une compression multi volumes
avec un maximum de 5 volumes
l'idée c'est:
je fais un ls que je met en tableau (je n'ai trouvé que cela pour accéder au fichier N+4 quand je lis ma sortie ls)
je lis le tableau
si je suis sur un fichier de type xx.0.tar et s'il existe le fichier xx.4.tar -> detare 5 volumes
sinon si je suis sur un fichier de type xx.0.tar et s'il existe le fichier xx.3.tar -> detare 4 volumes
et ainsi de suite jusqu'a xx.0.tar ou je detare uniquement ce volume
je me retrouve avec des erreurs:
[0.tar=0.tar: command not found
[1.tar=0.tar: command not found
etc..
je comprends bien qu'il y a un souci dans mes lignes de tests mais je ne trouve pas ou.
si quelqu'un peut m'aider ca serait super :o)
$2 est l'entrée /chemin/ envoyée au fichier
voici le code:
for DIRS in $(ls $2)
do
Tableau_Dir[$i]=$DIRS
#echo $i,${Tableau_Dir[$i]},$DIRS
i=$(($i+1))
done
j=0
while [ $j -lt $i ] ; do
if [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+4))]} -a ${Tableau_Dir[$(($j+4))]#*.}=4.tar] ; then
tar xvMfffff ${Tableau_Dir[$(($j+4))]} ${Tableau_Dir[$(($j+3))]} ${Tableau_Dir[$(($j+2))]} ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+3))]} -a ${Tableau_Dir[$(($j+3))]#*.}=3.tar] ; then
tar xvMffff ${Tableau_Dir[$(($j+3))]} ${Tableau_Dir[$(($j+2))]} ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+2))]} -a ${Tableau_Dir[$(($j+2))]#*.}=2.tar] ; then
tar xvMfff ${Tableau_Dir[$(($j+2))]} ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar -a ${Tableau_Dir[$(($j+1))]} -a ${Tableau_Dir[$(($j+1))]#*.}=1.tar] ; then
tar xvMff ${Tableau_Dir[$(($j+1))]} ${Tableau_Dir[$j]} $2
elif [${Tableau_Dir[$j]#*.}=0.tar] ; then
tar xvMf ${Tableau_Dir[$j]} $2
fi
j=$(($j+1))
done
A voir également:
- Probleme en shell
- Classic shell - Télécharger - Personnalisation
- Ssh secure shell download - Télécharger - Divers Web & Internet
- Shell startup windows 10 - Guide
- Shell infrastructure host c'est quoi - Guide
- Shell do while ✓ - Forum Shell
ps: ne recopiez pas ce script tel quel s'il vous interesse il y a encore a corriger dessus....