如何回显命令然后运行它?

如何回显命令然后运行它?

如何打印命令(回显它),然后在单个命令中运行它?

当您有一些别名/函数并想要在运行该命令之前打印该命令的内容时,这很有用。

这相当于

alias mi='echo mvn install; mvn install'

这个想法是为了避免重复命令(这里'mvn install'写了两次)

就像是:

alias echoAndRun='...'
alias mi='echoAndRun mvn install'

感谢您的帮助。

答案1

执行您所要求的操作的最简单方法可能是set -x打开命令跟踪。请记住随后将其关闭。

function showAndTell {
    set -x
    "$@"
    set +x
}

(请注意,shell 别名很少是您想要的,除非在csh衍生产品中,它们可以在某种程度上模拟函数,因为实际的 shell 函数不存在。)

有了上述函数,您也可以简单地echo "$@"在函数内进行修改;如果您想修改它显示将要运行的内容的方式,您需要以这种方式进行。

答案2

您可以使用

set -x

在发出命令之前。

相关内容