while loop no bash até o tamanho do arquivo não mudar [fechado]

-1

Estou tentando fazer o seguinte enquanto loop usando um script bash

file_size = 0
temp_size = 1
output_file
while (file_size != temp_size)
     temp_size = file_size
     download file
     append to output_file if possible
     file_size = sizeof(output_file)

Obrigado!

    
por user1745713 03.07.2013 / 15:51

1 resposta

6

Não está claro o que exatamente você está procurando, mas eu tirei uma foto na esperança de que isso o ajudará.

O seguinte programa precisa ser colocado em um arquivo de texto. Digamos que você nomeie dl . Você precisa alterar suas permissões com

chmod u+x dl

Você o executa passando o nome do arquivo de saída que está procurando.

./dl output

Faz o download do arquivo de imagem, na URL em que eu codifiquei, repetidamente anexando a saída ao arquivo de saída até que o tamanho do arquivo de saída seja igual ou maior que o tamanho especificado no temp_size variável.

#!/usr/bin/env bash

STAT="stat -c%s"
if [ $(uname) == "Darwin" ]; then
  STAT="stat -f%z"
fi

if [[ $# -ne 1 ]]; then
  echo "Usage: $0 output_filename"
  exit 1
fi

output_file="$1"
file_size=$($STAT "$output_file")
temp_size=1000000
download_file="http://www.google.com/logos/doodles/2013/franz_kafkas_130th_birthday-1976005-hp.png"
while [[ $file_size -le $temp_size ]]; do
  wget -O - $download_file >> "$output_file"
  file_size=$($STAT "$output_file")
done
echo $output_file is now $file_size bytes.

Se você executá-lo novamente com o mesmo parâmetro, ele não fará nada porque o arquivo de saída já é maior que o temp_size. Você pode redefini-la, dando-lhe outro nome de arquivo ou removendo o arquivo de saída.

rm output
    
por 03.07.2013 / 16:29