Shell script while statement

0

Eu estou fazendo um script (para fins educacionais), mas eu estou meio preso aqui .. O programa pede um nome de arquivo existente e verifica se o nome do arquivo realmente existe. Se não, o loop se repete até você preencher um arquivo que existe. Por enquanto, tudo bem! Mas quando você digita um nome de arquivo que existe, eu quero que o script entre no próximo loop while, para inserir o arquivo de caminho. Mas ele não continua. Como posso fazer entrar a próxima instrução while?

clear

echo "Your filesystem is threatned, files should be moved in order to guarantee safety!!!!"

while read FILE

do

        if [ -f $FILE ];
                then
                        echo "File is safe to secure"
                else
                        echo "Too late, we lost the file, safe another!"
fi

done


echo "Time is running out, we must secure this file inmidiately, quick give me a safe location!"



while read PATH

do

if [ -d $PATH ] && [ -f $FILE ];

        then
                echo "the location is secure! Move the file!"
        else
                echo "Either the file or the safehouse is corrupt, quick try again!"


fi

done
    
por Maurits 04.01.2014 / 12:20

1 resposta

1

Isso funciona:

clear

echo "Your filesystem is threatned, files should be moved in order to guarantee safety!!!!"

while read file; do
    if [[ -f "$file" ]]; then
        echo "File is safe to secure"
        break
    else
        echo "Too late, we lost the file, safe another!"
    fi
done

echo "Time is running out, we must secure this file inmidiately, quick give me a safe location!"

while read path; do
    if [ -d "$path" ]; then
        echo "the location is secure! Move the file!"
        break
    else
        echo "Either the file or the safehouse is corrupt, quick try again!"
    fi
done

Você precisa adicionar break declarações para sair do loop quando um arquivo / caminho válido for encontrado. Além disso, não use CAPITALS para nomes de variáveis.

    
por kiri 10.01.2014 / 22:11