(読み取りとし、エコー)期待通りに動作していない:teeコマンドは、スクリプトの出力は以下の通りです
スクリプト:
#!/bin/bash
#tee_with_read.sh
function tee_test()
{
echo "***This should be printed first but it is not***"
read -r -p "Enter input : "
echo "You entered : $REPLY"
}
tee_test | tee -a logfile
出力:私が追加しようとしている
$ ./tee_with_read.sh
Enter input : ***This should be printed first, but it is not***
"My Input"
You entered : "My Input"
ログファイルに出力します。 しかし、あなたが出力で見ることができるように、それは最初の読み込みがexcutedされ、次に期待どおりにエコーされないようです。
Windows 10でGit Bashバージョン3.1.23を使用しています。 名前付きパイプはこのバージョンでは使用できないため、名前付きパイプをログ用に使用できません。
'標準エラー出力にそのプロンプトを表示read'持っている場合は、
unbuffer
コマンドまたは同様のツールでそれを実行することができれば、あなたのecho
もstderr
に行く可能性があります。あなたの 'echo'がstdoutに表示されます。 – bishop