Bash 记录到gnome终端输出文件
我有一个bash脚本Bash 记录到gnome终端输出文件,bash,logging,gnome-terminal,Bash,Logging,Gnome Terminal,我有一个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
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
您也可以在调用的脚本顶部尝试类似的操作。这样你就不用开球了
exec >> ${LOGNAME} 2>&1
你试过了吗?另外,
2>&1
是旧语法。我更喜欢&>
@Blender2>&1
是可移植的语法,&>
是bash扩展。是的,我试过了,但不起作用。很好+1但是我可以知道为什么需要显式指定bash-c吗?脚本中的释迦牟尼不就足够了吗?@Jasonw:我已经对我的答案做了解释。希望有帮助。@unutbu:当涉及变量时,这个命令有用吗?例如,$variable=YES gnome terminal-e'bash-c”/folder/script1$variable 2>&1 | tee/tmp/script1.log“'Try:variable=YES gnome terminal-e”bash-c'/folder/script1$variable 2>&1 | tee/tmp/script1.log'
。(颠倒单引号和双引号的顺序。)