捕获SFTP输出到变量时发出问题

时间:2015-11-02 10:22:23

标签: shell unix sh sftp

我无法将 SFTP 命令的输出存储到结果变量中。 命令是

result=`sftp -oPort=$p_port $p_ftp_user_id@$p_host <<EOF
                    cd $p_remote_dir
                    mget TEST_FEED*
                    rm TEST_FEED*
                    exit
EOF`
echo "$result"

在shell脚本中输出err时命令如何触发,如下所示:

  

Gtk-WARNING **:无法打开显示:dora:0.0主机密钥验证   失败。无法读取数据包:通过对等方重置连接

我希望将此错误存储在 result 变量中,以便我可以将其用于以下验证:

value2=`echo "$result" |grep "failed" |wc -l`

但我将结果视为空。请帮助我在这里失踪。

1 个答案:

答案 0 :(得分:1)

您应该使用sftp

将stderr重定向到2>&1命令的stdout
result=$(sftp -oPort=$p_port $p_ftp_user_id@$p_host <<EOF 2>&1
cd $p_remote_dir
mget TEST_FEED*
rm TEST_FEED*
exit
EOF
)

echo "$result"