以下命令sftp
使用一行发送一条命令:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
如何发送多行以sftp
使用一行。是否可以插入回车符或实现此目的的方法,例如:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
想法是不要sftp -b
在加载外部文件列表命令的位置使用该选项。
以下命令sftp
使用一行发送一条命令:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home"
如何发送多行以sftp
使用一行。是否可以插入回车符或实现此目的的方法,例如:
sftp -o PasswordAuthentication=no user@host" <<<"lcd /home\n cd /myhome\n get file"
想法是不要sftp -b
在加载外部文件列表命令的位置使用该选项。
Answers:
从<<<
您使用的here-string()语法来看,我猜您的shell是bash
,因此您还可以将字符串与反斜杠转义的字符($''
)一起使用:
sftp -o PasswordAuthentication=no user@host <<< $'lcd /home\n cd /myhome\n get file'
便携式替代方法是此处文档:
sftp -o PasswordAuthentication=no user@host <<END
lcd /home
cd /myhome
get file
END
zsh
技能。
使用该-b/--batchfile
选项进行正确的错误处理:
printf '%s\n' 'lcd /home' 'cd /myhome' 'get file' | sftp -b - user@host
使用本机sftp命令
sftp -o PasswordAuthentication =没有用户@主机:/ home / myhome / file
lcd
和cd
做不同的事情。您已经将路径组合成不存在的东西。
<<<
最初是由zsh引入的(尽管受启发rc
),后来又被添加到ksh93中,然后又添加到bash中。