Bonjour à tous,
Relativement novice en shell scripting, je cherche à automatiser une copie de fichiers présents dans un répertoire près définit.
#!/bin/bash
REPTEMPORAIRE=/home/user/distrib
FICHIERTEMP=/tmp/temp
FICHIERLIST=/tmp/list
REPCIBLE=/home/user/Documents
# Affichage et enregistrement des fichiers présents dans le répertoire cible
for i in $(ls $REPCIBLE)
do
fichier=$REPCIBLE/$i
if [ -f $fichier ]; then
count=$(($count+1))
if [ $count = 1 ]; then
LIST=$i
echo $count"-)" $i
fi
if ! [ $count = 1 ]; then
LIST=$i,$LIST
echo $count"-)" $i
fi
fi
done
# Sélection des fichiers à copier
echo ''
read -p 'Quels documents voulez vous copier ? ' documents
echo $documents > $FICHIERTEMP
cat $FICHIERTEMP | tr ',' '\r' > $FICHIERLIST
# copie des fichiers voulus
for i in $(wc -l $FICHIERLIST)
do
tete=$(head -n $i $FICHIERLIST)
cut -d , -f $tete $LIST > /tmp/choix
choix=$(cat /tmp/choix )
echo "Copie de " $choix
cp $$REPCIBLE/$choix $REPTEMPORAIRE/
#head -n $i $FICHIERLIST | cut -d, -f- $LIST | cp $repcible/- $REPTEMPORAIRE/
done
exit 0
./testcopie.sh: ligne 32: T : commande introuvable
cut: valeur de champ « \r6 » incorrecte
Saisissez « cut --help » pour plus d'informations.
Copie de
cp: impossible d'évaluer '11847REPCIBLE/': Aucun fichier ou dossier de ce type
head: nombre de lignes incorrect: « /tmp/list »
cut: valeur de champ « nomdefichier1,nomdefichier2,nomdefichier3,nomdefichier5,nomdefichier6, » incorrecte
Saisissez « cut --help » pour plus d'informations.
Copie de
cp: impossible d'évaluer '11847REPCIBLE/': Aucun fichier ou dossier de ce type
Je me doute que ce code est loin d'être propre, auriez-vous des suggestions pour le simplifier ou du moins corriger mes erreurs ?