Re: script DD
Quoted by a box full of trained worms
For `ADRIANO BRAND <abrand@brturbo.com>'
On Thursday, 26 June 2003 (12:58):
>
> fiz um pequeno script com o dialog, para gerar disketes
> a partit de uma imagem usando o DD.
> O Problema é que dando certo ou não, ele retorna que o disco
> foi gerado com sucesso.
> como eu faço para retornar uma mensagem de erro se o
> disco não funcionar?
>
Qual método está usando para verificar se o dd obteve sucesso ou não?
Verificando a variável ``$?'' logo após sua execução? Bem, se não estou
enganado, o dd sempre vai retornar 0 (sem erros), mesmo se não conseguiu copiar
tudo. Você pode, entretanto, fazer algo do tipo:
dd if=arquivo.img of=/dev/fd0 2> /dev/stdout | grep "failed" -v
Eu não me lembro o que o dd joga no terminal quando há alguma falha, você teria
que experimentar isso e trocar o "failed" pelo que for mais apropriado.
Como o grep foi o último comando a ser executado, a variável ``$?'' será
atribuída a seu nível de erro. Portanto, se essa variável valer 1, é que houve
algum erro durante a geração do arquivo, e 0, se tudo ocorreu com sucesso.
Sobre a linha de comando, se você (ou algum outro leitor desta lista) não
souber o significado do ``2>'': isso significa que você estará redirecionando o
arquivo de número dois (saida padrão para erros, ou stderr) para algum outro
lugar, no caso, o stdout (ou saída padrão de texto).
Isso é feito pois não é possível fazer um pipe ("|") direto que consiga ler do
stderr -- é proposital e muito útil; você pode estar usando um programa que
processa algum dado e o jogue no stdout (e este você joga num arquivo em disco),
e os erros ou avisos, que não seriam importantes neste arquivo, são enviados
apenas para o seu terminal.
No seu caso, como temos que analisar os erros com o ``grep'', redirecionamos o
stderr para stdout.
Espero ter ajudado!
Ah, só uma sugestão: não mude a caixa de nome de comandos, isto é, não troque
minúsculas por maiúsculas, pois, como você sabe, *nix é SenSíVeL à VaRiaÇõEs dE
CaiXA, e isso pode causar alguma confusão. Se quiser realçar alguma coisa,
coloque-a entre aspas.
--
Leandro Pereira (oO) <leandro@linuxmag.com.br>
/||\ www.mindcrisis.tk
"Alguns homens vêem as coisas como são, e dizem 'Por quê?'
Eu sonho com as coisas que nunca foram e digo 'Por que não?'"
--George Bernard Shaw
Reply to:
- References:
- script DD
- From: ADRIANO BRAND <abrand@brturbo.com>