【问题标题】:How to type sftp password with '$' in linux terminal如何在 Linux 终端中使用“$”键入 sftp 密码
【发布时间】:2016-02-06 22:35:36
【问题描述】:

我需要编写 python 脚本,通过 SFTP 定期将文件发送到远程服务器。我使用 Popen 类从 python 脚本执行 Linux 命令,因为我想稍后检查传输是否成功。

脚本运行正常,但问题是我的SFTP密码以'$$$'结尾,而'$'似乎是Linux中的一些特殊字符?

我从 Popen 调用的命令是:

curl -s -S -T ./file.txt sftp://username:paswwordwith$$$@ip_address

我收到关于密码的错误。从错误消息中我可以看到密码'$$$' 被解释为某个数字...

如何正确输入密码?

【问题讨论】:

  • 您能粘贴您的popen 命令吗? $ 只有在您使用 shell=True 时才会成为问题。
  • 你的问题是off-topic这里。

标签: python linux curl sftp


【解决方案1】:

$ 在大多数 shell 中开始一个 shell 变量引用。将最后一个参数用单引号括起来,它应该可以工作。

编辑:David Ehrmann 的评论是正确的;我忽略了 Popen 部分。但是,您将其全部粘贴为一个字符串这一事实使我怀疑您确实在使用shell=True。在这种情况下,我将使用参数列表并将shell 保留为默认的False

【讨论】:

  • 单引号解决了这个问题。谢谢你。但是,现在我收到错误消息:上传失败:权限被拒绝 :( 使用 Filezilla 我可以毫无问题地上传文件,但此命令无法做到这一点。
猜你喜欢
  • 2019-08-15
  • 2021-01-10
  • 2012-04-02
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 2020-11-11
相关资源
最近更新 更多