【问题标题】:logging to file gnome-terminal output记录到文件 gnome-terminal 输出
【发布时间】:2012-02-10 01:11:14
【问题描述】:

我有一个我使用的 bash 脚本

gnome-terminal -e /folder/script1 &
gnome-terminal -e /folder/script2 &

打开两个新终端并执行两个并行作业。

我想知道是否可以使用类似的东西记录这些脚本的输出

gnome-terminal -e /folder/script1 2>&1 | tee script1.log

谢谢。

【问题讨论】:

  • 你试过了吗?此外,2>&1 是旧语法。我更喜欢&>
  • @Blender 2>&1 是可移植语法,&> 是 bash 扩展。
  • 是的,我已经试过了,但是没有用。

标签: bash logging gnome-terminal


【解决方案1】:

试试:

gnome-terminal -e 'bash -c "/folder/script1 2>&1 | tee /tmp/script1.log"'

解释:

gnome-terminal -e /folder/script1 2>&1

打开一个 gnome-terminal,执行/folder/script1,并将 gnome-terminal 命令的stderr 定向到stdout。要将script1 的stderr 重定向到stdout,我们需要一个shell。 | tee /tmp/script1.log 也是如此。

【讨论】:

  • 不错! +1,但我可以知道为什么 bash -c 需要明确指定吗?脚本里面的shebang还不够吗?
  • @Jasonw:我已经为我的答案添加了解释。希望对您有所帮助。
  • @unutbu:这个命令在涉及变量时有用吗?例如,$variable = YES gnome-terminal -e 'bash -c "/folder/script1 $variable 2>&1 | tee /tmp/script1.log"'
  • 试试:variable=YES gnome-terminal -e "bash -c '/folder/script1 $variable 2>&1 | tee /tmp/script1.log'"。 (颠倒单引号和双引号的顺序。)
【解决方案2】:

您也可以在您调用的脚本顶部附近尝试类似的操作。这样你就不必|三通

exec >> ${LOGNAME} 2>&1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多