2つの出力値をキャプチャして処理する方法

2つの出力値をキャプチャして処理する方法

私は dd の助けを借りて、メモリ カードにイメージを書き込むための絶対確実なソリューションを作成しようとしています。

アイデア: イメージの書き込みに関する知識がなくても他のユーザーが実行できるスクリプトをシステムに配置したい。

画像のサイズは変更される可能性があるため、サイズを確認するには事前にクエリを実行する必要があります。

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

ブロック数とボリュームサイズを取得します。次に、その値を次のコードに組み込む必要があります。

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

私は bs= と count= を自動入力してこの問題を解決しようとしましたが、最初のコードから出力を取得して処理する方法がわかりません。

xargs を試してみましたが、あまり役に立ちませんでした。何か解決策があれば教えてください。

ありがとう、ジャン

答え1

bsイメージ全体をコピー先にコピーしたい場合、とを特定の値に設定する必要はありませんcount。 のような高速コピー操作を確実に実行できるように、ブロックサイズを十分に大きく選択してくださいbs=16Mcount入力全体がコピーされない場合は、例えば

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

関連情報