linux影藏运行命令,linux – 仅在成功时隐藏shell命令的输出?

Hiding the output of a shell command通常涉及重定向stderr和stdout.是否有任何内置工具或命令默认隐藏输出但错误转储所有累积输出?我想将它作为远程ssh命令的包装器运行.现在我让他们使用重定向,但我不知道是什么让他们失败,他们只是太冗长.

编辑:最后我根据@Belmin的答案创建了以下模板,我稍微调整一下来累积脚本中的所有先前命令,使用当前进程标识符,自动删除日志,并添加失败红色错误出现问题时的消息.在此模板中,初始静默包装器将成功,然后第三个命令失败,因为该目录已存在:

#!/bin/sh

set -e

SILENT_LOG=/tmp/silent_log_$$.txt

trap "/bin/rm -f $SILENT_LOG" EXIT

function report_and_exit {

cat "${SILENT_LOG}";

echo "\033[91mError running command.\033[39m"

exit 1;

}

function silent {

$* 2>>"${SILENT_LOG}" >> "${SILENT_LOG}" || report_and_exit;

}

silent mkdir -v pepe

silent mkdir -v pepe2

silent mkdir -v pepe

silent mkdir -v pepe2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值