DVD から実行している bash スクリプトがあります。このスクリプトは、マルチボリュームの tar ファイルを DVD からローカル マシンにコピーします。コピーの途中で、スクリプトはユーザーに 2 枚目の DVD を挿入するように要求し、その時点で残りのファイルがコピーされます。スクリプトは最初の DVD にはありますが、2 番目の DVD にはありません。
このスクリプトは、最後のファイルがコピーされた後、tar マルチボリューム抽出操作とその後の処理を開始する前に停止しているだけです。エラーやメッセージは報告されていません。「-x」を指定して bash を実行してみましたが、疑わしいものは何もありません。終了ステートメントもありません。さらに残念なのは、この動作に一貫性がないことです。スクリプトが停止する場合もありますが、問題なく続行される場合もあります。
スクリプトで strace を実行しました。コピー操作の終了後、次のように表示されます。
read(255, "\0\0\0\0\0\0\0\0\0\0"..., 5007) = 1302
read(255, "", 5007) = 0
exit_group(0) = ?
bash がスクリプト ファイルをメモリに読み込み、そこから実行することは知っていますが、ある時点でスクリプト ファイルを再読み込みしようとして失敗する可能性はありますか (存在しないため)。tar ファイルは非常に大きく、スクリプトが開始されてから (2 枚目の DVD から) 最後のファイルがコピーされるまでに約 10 ~ 15 分かかります。