使用链接到stdin的文件描述符的原因而不是直接使用stdin?

时间:2016-08-22 09:37:29

标签: bash networking router file-descriptor

我有一个bash脚本,以下列方式启动scp

echo "${SCP_PASS:-$PASSWORD}" | ( exec 3<&0; scp -qp ${SCP_PORT:+-P$SCP_PORT} -oStrictHostKeyChecking=yes -oPasswordFd=3 $TRANSFER_FILE "$SCP_USER@$SCP_HOST:$SCP_PATH" )

exec 3<&0有什么意义?据我了解,它将stdin复制到文件描述符3。为什么需要这个?为什么不使用-oPasswordFd=0

1 个答案:

答案 0 :(得分:3)

将stdin重定向到fd 3没有任何好处 - 而且PasswordFd似乎也不是一个openssh选项 - 似乎正在运行的scp是一个包装器或自定义构建 - 一般来说虽然提供密码的好处是单独的文件描述符是为了保持stdin打开数据传输btw openssh scp不支持