将 SFTP 输出捕获到变量时出现问题
Issue while capturing SFTP output to variable
我无法将以下 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 脚本中触发上述命令时,输出错误如下所示:
Gtk-WARNING **: cannot open display: dora:0.0 Host key verification
failed. Couldn't read packet: Connection reset by peer
我希望将此错误存储在 result 变量中,以便我可以将其用于以下验证:
value2=`echo "$result" |grep "failed" |wc -l`
但是我得到的 result 是空的。请帮助我在这里缺少什么。
您应该使用 2>&1
将 sftp
命令的标准错误重定向到标准输出
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"
我无法将以下 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 脚本中触发上述命令时,输出错误如下所示:
Gtk-WARNING **: cannot open display: dora:0.0 Host key verification failed. Couldn't read packet: Connection reset by peer
我希望将此错误存储在 result 变量中,以便我可以将其用于以下验证:
value2=`echo "$result" |grep "failed" |wc -l`
但是我得到的 result 是空的。请帮助我在这里缺少什么。
您应该使用 2>&1
sftp
命令的标准错误重定向到标准输出
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"