- ベストアンサー
<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に出力させるにはどのようにしたらよろしいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
通常のリダイレクトで拾えないのであればエラー出力に なっているのでしょう。 restore -ivf /dev/nst0 <<EOF >> $LOG 2>&1 ls EOF これで意図した結果になりますか?
その他の回答 (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 だけで済むのでは?
お礼
lsの結果が出力できました。 ありがとうございます。