Quoted by a box full of trained worms For `ADRIANO BRAND <[EMAIL PROTECTED]>' 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) <[EMAIL PROTECTED]> /||\ 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