GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter à nouveau le script si l'entrée est Oui ?

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.


Linux
  1. Linux - Comment exécuter un script sur le verrouillage/déverrouillage de l'écran ?

  2. Cron Job pour vérifier si le script Php est en cours d'exécution, sinon, exécutez-le ?

  3. Comment exécuter un script ? ?

  4. Comment puis-je demander une entrée Oui/Non/Annuler dans un script shell Linux ?

  5. Exécuter un script shell en parallèle

Comment exécuter un script Python en PHP

Comment exécuter un script bash

Linux - Comment exécuter un script déclenché par une entrée de joystick ?

Script au démarrage ?

exécuter sieve sur maildir

Quel est le moyen le plus rapide d'exécuter un script ?