Como recuperar um arquivo de um prompt?

1

Suponha que eu queira criar um script que solicite a pesquisa de um arquivo.

Tal que,

echo "What file are you searching for?"
read filename
filepath=/test/dir1
file=$filename
for I in file
do
echo "$I"
find "$filepath" "$I"
done

Isto parece fazer uma busca contínua pelo nome do arquivo especificado. No entanto, eu obtenho um arquivo find: file: não existe esse arquivo ou diretório

    
por Juan Davila 21.04.2015 / 20:56

1 resposta

0

Primeiro, for I in file provavelmente deve ser for I in $file ; a cifrão é necessário ao recuperar o valor de uma variável.

Eu alteraria seu script das seguintes maneiras:

echo "What file names are you searching for?"
read files
filepath=/test/dir1

for f in $files
do
    echo "$f"
    find "$filepath"/"$f"
done

Eu removi a atribuição para $file de $filenames e assumi que você significava que o usuário inserisse vários nomes de arquivos separados por espaço em branco.

Então eu passei find de um único caminho, construído separando o nome do diretório e o nome do arquivo com uma única barra. Se você quisesse procure por um arquivo chamado assim em uma profundidade arbitrária, você pode usar find "$filepath" -name "$f" .

    
por 21.04.2015 / 21:01