我坚持使用 bash scipt,它应该同时写入标准输出和文件。我在其中使用函数和一些变量。每当我尝试将函数重定向到文件并使用 tee 在屏幕上打印时,我无法使用我在函数中使用的变量,因此它们以某种方式成为本地变量。这是一个简单的例子:
#!/bin/bash
LOGV=/root/log
function var()
{
echo -e "Please, insert VAR value:\n"
read -re VAR
}
var 2>&1 | tee $LOGV
echo "This is VAR:$VAR"
输出:
[root@testbox ~]# ./var.sh
Please, insert VAR value:
foo
This is VAR:
[root@testbox ~]#
提前致谢!
编辑:
回应@Etan Reisner 建议使用
var 2>&1 > >(tee $LOGV)
这种构造的唯一问题是日志文件没有收到所有内容......
[root@testbox~]# ./var.sh
Please, insert VAR value:
foo
This is VAR:foo
[root@testbox ~]# cat log
Please, insert VAR value: