Python命令行调用和答案

时间:2018-02-06 18:26:10

标签: python git shell terminal command

我试图在我的虚拟机上使用python中的Gitpython但由于sudo和拒绝权限等而挣扎。所以我想尝试不同的方法。当我写sudo git时,首先要求我输入密码,然后输入git用户名,然后输入git密码,我现在要做的是在python中预装某些os.system中的那些。这是我到目前为止所取得的成就:

os.system("echo <password> | sudo -S git pull")

这解决了sudo密码的第一个问题。但是,如何为命令行返回的问题预先填写答案?

1 个答案:

答案 0 :(得分:1)

  

如何预填命令行将返回的问题的答案?

通过避免预填充任何东西。

这意味着,作为root用户,您无需输入用户名/密码即可进行git pull
如果您可以root身份在命令行中执行此操作,则可以使其在Python os.system("echo <password> | sudo -S git pull")调用中起作用。

为此:

1 /首先在远程URL本身中设置用户名

cd /path/to/repo
git remote -v
  https://aserver/auser/arepo
git remote set-url origin https://username@aserver/auser/arepo

2 /使用credential helper(以root用户身份执行),以便Git本身查找密码(而不是必须尝试将其输入命令行)。

一旦以root的身份运行,请在您的Python程序中重复相同的git pull(以root运行)