Como capturar 2 valores de saída e processá-los

Como capturar 2 valores de saída e processá-los

Estou tentando criar uma solução infalível para gravar uma imagem em um cartão de memória com a ajuda do dd.

Ideia: Quero colocar um script no sistema que outros possam executar sem nenhum conhecimento sobre como escrever imagens.

A imagem pode mudar de tamanho, portanto, uma consulta deve ser executada antecipadamente para determinar o tamanho.

isoinfo -d -i /media/usb/image.iso | grep -i -E 'block size|volume size' | sed 's/^.*is: \(.*\)/\1/'

para obter os números do tamanho do bloco e do volume. Agora preciso incorporar os valores no código a seguir

dd if=/media/usb/image.iso of=/dev/sdc bs=2048 count=96053 status=progress

Tentei resolver isso autofill bs= e count= mas não consigo descobrir como capturar e processar a saída do primeiro trecho de código.

Eu tentei xargs mas isso não me ajudou muito. Espero que você tenha alguma solução para mim.

Felicidades janeiro

Responder1

Você não precisa definir bsvalores countespecíficos se quiser copiar a imagem inteira para o destino. Apenas certifique-se de que o tamanho do bloco seja grande o suficiente para garantir uma operação de cópia rápida como bs=16M. Sem que counttoda a entrada seja copiada, por exemplo

dd if=/media/usb/image.iso of=/dev/sdc bs=16M status=progress

informação relacionada