Function 使用shell脚本中的tee进行stdoutt和stderr重定向
我正在尝试使用下面的代码将输出/错误打印到控制台和日志文件 fun1(){ 回声“内部fun1” fun2 var=5 } fun2(){ 回声“内部fun2” } fun1 2>&1|tee-a testlog.txt echo$var#打印空值 在fun1执行后,有没有办法将var值打印为5??我需要控制台和日志文件中的输出。而且fun1只能执行一次Function 使用shell脚本中的tee进行stdoutt和stderr重定向,function,unix,stdout,io-redirection,tee,Function,Unix,Stdout,Io Redirection,Tee,我正在尝试使用下面的代码将输出/错误打印到控制台和日志文件 fun1(){ 回声“内部fun1” fun2 var=5 } fun2(){ 回声“内部fun2” } fun1 2>&1|tee-a testlog.txt echo$var#打印空值 在fun1执行后,有没有办法将var值打印为5??我需要控制台和日志文件中的输出。而且fun1只能执行一次 请提供帮助。如果您将其作为bash脚本编写,则可能: #!/bin/bash exec 3>&1 1> >(tee
请提供帮助。如果您将其作为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来执行,可以将其分为两个脚本:
脚本2.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
你一次问几个(独立的)问题。考虑发布一些单独的问题。我唯一关心的是显示$var的值。