如何在 Bash sftp 连接尝试结束时放置 heredoc?
How do I place a heredoc at the end of a Bash sftp connection attempt?
正在尝试让这段代码正常工作。我想在中断和退出 shell 之前尝试 3 次 SFTP
连接。问题是有一个 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
我根本不会这样写(考虑 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
只需确保 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
正在尝试让这段代码正常工作。我想在中断和退出 shell 之前尝试 3 次 SFTP
连接。问题是有一个 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
我根本不会这样写(考虑 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
只需确保 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