如何在 linux 终端中使用“$”输入 sftp 密码

How to type sftp password with '$' in linux terminal

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

脚本运行正常,但问题是我的 SFTP 密码以 '$$$' 结尾,并且 '$' 似乎是 Linux?

中的一些特殊字符

我从Popen调用的命令是:

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

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

如何正确输入密码?

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

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