将两个命令的输出打印到同一终端

将两个命令的输出打印到同一终端

我使用的是 Ubuntu 16.04.2,我的桌面上有一个图标,链接到我$HOME/bin目录中的脚本。此脚本使用$HOME/bin目录中的两个脚本。它打开一个终端并打印脚本一的输出。然后它打开第二个终端并打印脚本二的输出。

我希望它将所有数据打印到一个终端。最终结果应该是,当我单击桌面图标时,所有数据都将打印到一个终端。

非常感谢您的建议

#!/bin/bash
gnome-terminal -e "bash -c $HOME/bin/bin_old/bk_up;bash" && gnome-terminal -e "bash -c $HOME/bin/bin_old/win_bkp;bash"

答案1

不需要打开第二个 gnome 终端,只需在第一个终端中执行两个命令即可。

#!/bin/bash
gnome-terminal -e "bash -c $HOME/bin/bin_old/bk_up;$HOME/bin/bin_old/win_bkp;bash"

编辑

根据评论中的讨论,理查德想要的是这样的:

#!/bin/bash
$HOME/bin/bin_old/bk_up
if [ $? -eq 0 ]; then
    $HOME/bin/bin_old/win_bkp
fi

基本上,它运行第一个脚本,如果运行成功(没有返回错误),它就运行第二个脚本。

答案2

在 Ricardo Rodrigues 的大力帮助下。这是最适合我想要实现的解决方案。如果第一段代码成功,那么第二段代码将执行。如果不成功,则会打开一个终端窗口,告诉我在哪里可以找到错误的详细信息。如果第二段代码成功,那么我就会确信我的系统已在本地备份,并且还备份到远程系统,然后在本地关闭。但是,如果出现错误,它将打开一个终端窗口并告诉我在哪里可以找到错误的详细信息。正如您所见,我已经放弃尝试让所有内容都显示在单个弹出终端窗口中。这似乎对我来说很简单。现在,当我单击我的桌面图标时,系统将备份到本地和远程系统,然后关闭,或者我将在弹出终端中收到一条错误消息。

#!/bin/bash
if bk_up 2> $HOME/local_errors     # backup to local directory
then
    if win_bkp 2> $HOME/remote_errors  # backup to remote system
    then
        shutdown now
        exit
    else
        echo "echo Remote errors. Check remote_errors file" > $HOME/warn2
        chmod ugo+x $HOME/warn2 # needs to be executable for gnome-termial to work.
        gnome-terminal -e "bash -c $HOME/warn2;bash"
        exit
    fi
else
   echo "echo Local errors. Check local_errors file" > $HOME/warn1
   chmod ugo+x $HOME/warn1  # need to be executable for gnome-terminal to work.
   gnome-terminal -e "bash -c $HOME/warn1;bash"
   exit
   exit
fi

相关内容