捕获ssh命令的错误消息

时间:2016-02-09 09:05:14

标签: shell

我正在尝试在执行ssh命令时捕获错误消息。 以下是我的代码的摘录:

     #       errMsg=`ssh build@$h 'mkdir -p $rmtRepo' 2>&1`
             sh build@$h "mkdir -p $rmtRepo"
if [[ -n $errMsg ]]; then
                    echo "Unable to make the ssh connection for the host $h: $errMsg"
                fi

使用注释行时,会回显错误消息,但如果没有错误,则mkdir命令无法执行以下错误。为什么mkdir命令失败?如果我没有捕获错误消息的代码,则mkdir命令会成功执行。如果没有错误条件,请建议如何执行make命令并同时捕获错误? mkdir:缺少操作数 请尝试使用`mkdir --help'获取更多信息。

1 个答案:

答案 0 :(得分:1)

例如,假设您在制作目录时遇到错误。

您可以通过查看目录是否存在来检查它。

if [ ! -d "$DIRECTORY" ]; then
  # you can echo some error message here
  exit 1 #to terminate execution of code
fi

这里的要点是,如果您在上面的代码中有错误,则无法在以下代码中获取错误消息,因为一旦出现一些早期错误,它将自动终止。