Je suis en train de créer un script de gestion de fichiers simple, tout fonctionne bien sauf à la fin, je veux qu'il dise do you want to perform another action
et si la réponse est yes
alors je veux que le script recommence. Je sais que j'ai besoin d'une sorte de boucle ici? Voici ce que j'ai :
#/bin/bash
echo "Select an option from copy , remove , rename , linking"
#read in user input into the action variable
read action
# if action is copy then continue proceed with the following
if [ $action = "copy" ]
then
echo "Please enter the filename you wish to copy"
read filename
# check if filename exists, if it doesn't then exit program
if [ ! -e $filename ]
then
echo "$filename does not exist"
exit 1
fi
echo "Please enter the new filename"
read filenamenew
cp $filename $filenamenew
echo "$filename has been copied to $filenamenew"
# if action is remove then continue proceed with the following
elif [ $action = "remove" ]
then
echo "Please enter the filename you wish to remove"
read filename
# check if filename exists, if it doesn't then exit program
if [ ! -e $filename ]
then
echo "$filename does not exist"
exit 1
fi
rm -rf $filename
echo "$filename has been deleted"
# if action is rename then continue proceed with the following
elif [ $action = "rename" ]
then
echo "Please enter the filename you wish to rename"
read filename
# check if filename exists, if it doesn't then exit program
if [ ! -e $filename ]
then
echo "$filename does not exist"
exit 1
fi
echo "Please enter the new filename"
read filenamenew
mv $filename $filenamenew
echo "$filename has been renamed to $filenamenew"
fi
echo "Do you want to perform another file operation (yes/no) ?"
read answer
if [ $answer = yes ]
then "run script again"
exit 0
elif [ $answer = no ]
then echo "Exiting Program"
exit 0
fi
fi
Réponse acceptée :
avant l'écho "Sélectionnez une action..."
answer=yes
while [ "$answer" = yes ]
do
à la fin, remplacez
if [ $answer = yes ]
then "run script again"
exit 0
elif [ $answer = no ]
then echo "Exiting Program"
exit 0
fi
fi
par
if [ "$answer" = yes ]
then "run script again"
fi
done
echo "Exiting Program"
exit 0
ce que j'ai fait, c'est enfermer le programme dans un while [$condition ] do ; ... done
.
Je m'assure simplement que la condition était OK (answer=yes
) dans la première boucle.