我尝试使用以下代码将输出/错误打印到控制台和日志文件。
FUN1(){
回声"在fun1" 中FUN2
VAR = 5
}
FUN2(){
回声"在fun2" 中}
fun1 2>& 1 | tee -a testlog.txt
echo $ var#printing null value
任何方式在fun1执行后打印var的值为5?我需要在控制台和日志文件中输出。另外fun1应该只执行一次。
请帮忙。
答案 0 :(得分:0)
如果您将其写为bash脚本,则可以:
#!/bin/bash
exec 3>&1 1> >(tee testlog.txt) 2>&1
fun1(){
echo 'inside fun1'
fun2
var=5
}
fun2(){
echo 'inside fun2'
}
fun1
echo "$var"
如果您希望将其作为普通的bourn shell,可以将其分为两个脚本:
script2.sh:
#!/bin/sh
fun1(){
echo 'inside fun1'
fun2
var=5
}
fun2(){
echo 'inside fun2'
}
fun1
echo $var
和script1.sh:
#!/bin/sh
script2.sh 2>&1 | tee testlog.txt