• ベストアンサー

<Linux>restoreコマンドのリダイレクトについて

以下の内容でrestoreコマンドによる テープの内容チェックを自動で走らせています。 restore -ivf /dev/nst0 <<EOF >> $LOG ls >> $LOG EOF 以上のシェルの場合、restore -ivf /dev/nst0の結果は $LOGに出力されるのですが、lsの結果が反映されません。 デバックモードで動かしてみてもエラーになっている様子もありませんでした。 restore -ivf /dev/nst0 <<EOF >> $LOG ls EOF 以上で実行するとlsの結果が画面には出力可能です。 この結果を$LOGに出力させるにはどのようにしたらよろしいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.1

通常のリダイレクトで拾えないのであればエラー出力に なっているのでしょう。 restore -ivf /dev/nst0 <<EOF >> $LOG 2>&1 ls EOF これで意図した結果になりますか?

noname#26506
質問者

お礼

lsの結果が出力できました。 ありがとうございます。

その他の回答 (1)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

<<EOF を使っているということはヒアドキュメントですから、 ls>>$LOG はシェルではなく restoreコマンドに与えられます。 resoteコマンドのlsサブコマンドは、 >>リダイレクトなんてサポートしいません。 Ano2のように、 ・lsサブコマンドには「ls」だけを与える ・restore の出力の標準エラーもファイルにリダイレクトする とすればOKのはずです。 ところで、テープ内容を知りたいのなら、 restore -tvf /dev/nst0  2>&1 > $LOG だけで済むのでは?