如何检查命令是否有任何输出(zsh)

如何检查命令是否有任何输出(zsh)

如果命令有任何输出,我想在命令后打印一个新行(我希望一旦我的终端开始滚动,这将使其更具可读性)。

我找到了这个:

precmd() {
    precmd() {
        print ""
    }
}

这是可行的,但显然会在每个命令之后打印行。

还有这个:

precmd () {                        
    exec 2>&- >&-
    lastline=$(tail -1 ~/.command.out)
    sleep 0.1
    exec > /dev/tty 2>&1
}

preexec() {
    exec > >(tee ~/.command.out&)
}

并尝试修改它,但即使没有我的修改,它也会“破坏”输出(并使 vim 无法使用)。

答案1

您正在寻找类似的东西吗?该脚本将运行第一个参数,如果命令在标准输出上输出任何内容,它也会打印换行符

#!/bin/bash

if [[ $($1 | tee /dev/tty) ]]; then
    echo
fi

相关内容