shell脚本显示步骤概述,而不是将所有日志打印到控制台

时间:2018-01-10 05:59:23

标签: bash git shell unix

我正在编写git发布分支合并到master的脚本然后开发分支并删除当前分支并创建开发分支的新分支。这涉及4个步骤

  1. 发布分支到主人
  2. 掌握开发
  3. 删除当前分支
  4. 创建新的分支机构
  5. 如何在shell脚本中执行,只显示4个步骤和步骤状态,而不是在控制台中打印整个输出。

    我想要的输出是

    • 发布分支到主人通过
    • 掌握开发通过
    • 删除当前分支传递
    • 通过开发传递
    • 创建新分支

    SUCCESS

1 个答案:

答案 0 :(得分:0)

您可以将每个单独命令的stdout和stderr重定向到/ dev / null,或者更好地重定向到日志文件,并且仅将描述回显到您到控制台的步骤,即:

echo Deleting current branch
git branch -d fluffy 2>&1 >$LOG
if (($?==0)) then
  echo passed
else
  echo failed
fi

我个人会这样做:

echo Deleting current brach
git branch -d fluffy >$LOG
if (($?==0)) then
  echo passed
fi

原因是当git命令失败时,我们通常会获得有关stderr的错误信息,在这种情况下,我们希望看到错误消息。

另一种方式(我不建议,但仍符合您的要求)是将整个脚本的输出重定向到日志文件,并将状态消息显式打印到控制台:

echo Deleting current branch >/dev/tty

但是,这意味着此脚本只能以交互方式合理使用,即当您拥有控制台时。