如何在 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
。
我需要编写 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
。