如何将“”作为参数传递给 subprocess.check_call?
How to pass "" as argument to subprocess.check_call?
应用解决方案时
ssh-keygen -t rsa -N "" -f my.key
到 Automating "enter" keypresses for bash script generating ssh keys in Python 3 我偶然发现了以下问题:
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "\"\"", "-f", "my.key"])
以及
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "''", "-f", "my.key"])
由于
而失败
Saving key "my.key" failed: passphrase is too short (minimum five characters)
和
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "", "-f", "my.key"])
导致 ssh-keygen
提示输入应通过传递 -N ""
来避免的密钥。
有什么pythonic方式可以实现命令接收-N ""
?我知道可以将命令和参数作为一个字符串传递,这可能会解决这个问题,或者从对所引用问题的答案中采取另一种方法。我想扩展我的 Python 知识。
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "", "-f", "my.key"])
在命令行以及 Docker 图像 python:3
中工作,但在脚本中调用代码时无效,该脚本是在 [=] 中使用 python3 script.py
调用的18=] 图片 google/cloud-sdk
.
这很有趣,但可能是由于某些评论中所述缺少 tty 时不同的行为造成的。
应用解决方案时
ssh-keygen -t rsa -N "" -f my.key
到 Automating "enter" keypresses for bash script generating ssh keys in Python 3 我偶然发现了以下问题:
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "\"\"", "-f", "my.key"])
以及
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "''", "-f", "my.key"])
由于
而失败Saving key "my.key" failed: passphrase is too short (minimum five characters)
和
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "", "-f", "my.key"])
导致 ssh-keygen
提示输入应通过传递 -N ""
来避免的密钥。
有什么pythonic方式可以实现命令接收-N ""
?我知道可以将命令和参数作为一个字符串传递,这可能会解决这个问题,或者从对所引用问题的答案中采取另一种方法。我想扩展我的 Python 知识。
sp.check_call(["ssh-keygen", "-t", "rsa", "-N", "", "-f", "my.key"])
在命令行以及 Docker 图像 python:3
中工作,但在脚本中调用代码时无效,该脚本是在 [=] 中使用 python3 script.py
调用的18=] 图片 google/cloud-sdk
.
这很有趣,但可能是由于某些评论中所述缺少 tty 时不同的行为造成的。