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

関連情報