2016-09-26 11 views
2

ZFSコマンドのすべての出力とエラーをファイルにリダイレクトするシェルスクリプトを作成しました。しかし、シェルスクリプトを実行すると、ファイルにリダイレクトするのではなく、プロンプトにエラーメッセージが表示されます。Solarisシェルスクリプト内のファイルにstderrがリダイレクトされない

#!/usr/bin/sh   

`zfs <command>` 2>&1 | tee file.txt #doesn't work  
##`zfs <command>` >> output.txt 2>&1 #doesn't work  

これはサイズ0バイトのoutput.txtとを作成し、エラーメッセージがコマンドプロンプトに表示されます。以下は、シェルスクリプトです。

sudo ./testShell.sh  
cannot load key for '/tank/test1': incorrect key.  

入力してください。

+0

試してみてください: 'zfs key -l -a 2>&1 | tee file.txt'(バッククォートなし)。 – John1024

+0

逆引用符を削除した後で動作しました。ありがとうございます! – user2306856

答えて

3

これは1つが期待するかもしれない何をしていません。

`zfs <command>` 2>&1 | tee file.txt 

上記のコマンドは、zfs <command>を実行し、そのコマンドからの標準を収集し、それをコマンドだったし、それを実行しようとするかのようにその出力を扱います。

おそらくzfs <command>が実行され、その出力がリダイレクトされるだけです。その場合:

zfs <command> 2>&1 | tee file.txt 
+1

説明をありがとう! – user2306856

関連する問題