Python命令行调用和答案

问题描述 投票:1回答:1

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

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

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

python git shell terminal command
1个回答
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运行)

© www.soinside.com 2019 - 2024. All rights reserved.