如何在linux终端中用'$'键入sftp密码

时间:2015-11-05 22:03:22

标签: python linux curl sftp

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

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

我从Popen打来的命令是:

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

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

如何正确输入密码?

1 个答案:

答案 0 :(得分:2)

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

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