尝试让此代码段正常运行。我想在破坏和退出shell之前尝试SFTP
连接3次。问题是,当连接成功时,有一个heredoc并且sftp
没有将heredoc作为输入; shell变得互动,我不想要。
count=0; until sftp -o StrictHostKeyChecking=no -i $key $server ; do ((count++)); [[ $count -eq 3 ]] && echo $count && break && exit 64; done; <<END
get docs/*
quit
END
答案 0 :(得分:3)
我根本不会这样写(考虑lftp
而不是sftp
),但是:
count=0
until sftp -o StrictHostKeyChecking=no -i "$key" "$server" <<END
get docs/*
quit
END
do
if (( count++ >= 3 )); then echo "$count failures" >&2; exit 64; fi
END
答案 1 :(得分:1)
确保commands.txt
包含您的命令,每行一个。
count=0
until sftp -o StrictHostKeyChecking=no -i "$key" -b commands.txt "$server"
do
((count++))
[[ $count -eq 3 ]] && echo $count && exit 64
done