送りたい標準出力ファイルのスクリプトブロックの場合、その名前はブロック内の変数によって定義されます。しかし、私が使うときティー、ブロック外の変数がもう存在しないようです。いいえティー、変数がまだ存在します。
スクリプト:
#!/bin/bash
{
log="mylog.txt"
echo log: $log
} |tee $log
echo log: $log
結果:
log: mylog.txt
log:
そしてではない私のログ.txt生成されたファイルティー。
ベストアンサー1
#!/bin/bash
log="mylog.txt"
{
echo log: $log
} |tee $log
パイプは、コマンドのリストがサブシェルで実行されるようにします。変数が別のサブシェルにあるため、上に渡すことはできません。したがって、変数を正しく使用するには、変数をパブリックコンテキストに移動する必要があります。