私はbashリダイレクトを学んでいますが、リダイレクトを使用してteeコマンドをエミュレートする方法があるかどうか疑問に思います。それは可能ですか?または他の方法があるかもしれません。
teeについて質問する前に、私はbash式を使用してストリームを2つの同じストリームに分割する可能性を探していました。しかし、これは不可能に見えます。
ベストアンサー1
以下は、ファイルにファイルが含まれていないと仮定し、tee
同じことを行うbash関数です(この文字列を必要に応じて調整して、ファイルに含まれない可能性が非常に低いようにすることができます)。tee -a
¤¤¤¤¤¤¤¤¤¤!
tee(){
[ "$1" = '-a' ] && shift || rm -f "$1"
sed 's/\x0/¤¤¤¤¤¤¤¤¤¤!/g' - | while read line; do
echo "$line" | sed 's/¤¤¤¤¤¤¤¤¤¤!/\x0/g' >> "$1"
done
}
bashとzshを使ってテストしました。
使用例:
echo asdf | tee -a file