我正在尝试使用以下代码将输出/错误打印到控制台和日志文件。
乐趣1(){
回声“在 fun1 中”
乐趣2
变量=5
}
乐趣2(){
回声“在 fun2 中”
}
乐趣1 2>&1 | tee -a testlog.txt
echo $var # 打印空值
在 fun1 执行后有什么方法可以将 var 的值打印为 5?我需要控制台和日志文件中的输出。fun1 也应该只执行一次。
请帮忙。
我正在尝试使用以下代码将输出/错误打印到控制台和日志文件。
乐趣1(){
回声“在 fun1 中”
乐趣2
变量=5
}
乐趣2(){
回声“在 fun2 中”
}
乐趣1 2>&1 | tee -a testlog.txt
echo $var # 打印空值
在 fun1 执行后有什么方法可以将 var 的值打印为 5?我需要控制台和日志文件中的输出。fun1 也应该只执行一次。
请帮忙。
如果您将其编写为 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