我知道可以使用tee
将输出的内容复制到文件并仍将其输出到控制台。
但是,我似乎找不到一种方法来准备 shell 脚本(如固定模板),而不使用tee
脚本中的每个命令或使用管道执行脚本tee
。
因此,我必须每次都使用管道开始调用脚本,tee
而不是通过脚本自动为我执行此操作。
我尝试使用管道使用修改后的 shebang,但没有成功,我似乎找不到实现此目的的方法。
所以不要像这样调用脚本:
./myscript.sh |& tee scriptout.txt
我想通过这样调用它来获得相同的效果:
./myscript
当然,脚本需要知道脚本内部变量中设置的文件名。
我怎样才能做到这一点?
您可以将脚本的内容包装在一个函数中,并将函数输出通过管道传输到
tee
:您可能可以做一些事情,比如在脚本开始时使用
exec
. (我没有对此进行过强烈的测试。)示例,假设脚本被调用
demo
并已通过以下方式执行chmod a+x demo
: