Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 记录到gnome终端输出文件_Bash_Logging_Gnome Terminal - Fatal编程技术网

Bash 记录到gnome终端输出文件

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

我有一个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

您也可以在调用的脚本顶部尝试类似的操作。这样你就不用开球了

exec >> ${LOGNAME} 2>&1

你试过了吗?另外,
2>&1
是旧语法。我更喜欢
&>
@Blender
2>&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'
。(颠倒单引号和双引号的顺序。)