我有一个bash脚本,在其中我使用
gnome-terminal -e /folder/script1 &
gnome-terminal -e /folder/script2 &
我希望打开两个新终端并同时执行两项任务。
我想知道是否有可能通过类似的方式记录这些脚本的输出:
gnome-terminal -e /folder/script1 2>&1 | tee script1.log
谢谢你。
我有一个bash脚本,在其中我使用
gnome-terminal -e /folder/script1 &
gnome-terminal -e /folder/script2 &
我希望打开两个新终端并同时执行两项任务。
我想知道是否有可能通过类似的方式记录这些脚本的输出:
gnome-terminal -e /folder/script1 2>&1 | tee script1.log
尝试:
gnome-terminal -e 'bash -c "/folder/script1 2>&1 | tee /tmp/script1.log"'
说明:
gnome-terminal -e /folder/script1 2>&1
打开gnome终端,执行/folder/script1
,并将gnome终端命令的stderr重定向到stdout。要将script1
的stderr重定向到stdout,我们需要一个shell。同样适用于| tee /tmp/script1.log
。
variable=YES gnome-terminal -e "bash -c '/folder/script1 $variable 2>&1 | tee /tmp/script1.log'"
。(反转单引号和双引号的顺序。) - unutbu你也可以尝试在调用脚本的顶部附近添加类似这样的内容。这样,你就不必使用 | tee 命令了。
exec >> ${LOGNAME} 2>&1
2>&1
是旧的语法。我更喜欢&>
。 - Blender2>&1
是可移植的语法,而&>
则是 Bash 的扩展。 - Kevin