首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对终端命令序列使用子进程

对终端命令序列使用子进程
EN

Stack Overflow用户
提问于 2017-05-22 09:45:24
回答 1查看 112关注 0票数 0

我正在尝试编写我的第一个程序,使用GUI输入自动化git推送/克隆过程。

代码语言:javascript
复制
    """GUI GIT Program"""
#Import Statements
from tkinter import *
from tkinter import simpledialog
from tkinter import messagebox
import subprocess
from time import sleep

# set up the GUI
root = Tk()
w = Label(root, text="Git Handler")
w.pack()

# Welcome the User
messagebox.showinfo("Welcome","This is a program to automate your Git stuff!")

# solicit input
user_name = simpledialog.askstring("Username:","What is your username?")
password = simpledialog.askstring("Password","What is your password?",show="*")
message_for_push = simpledialog.askstring("Push Message","What's your push message?")

# do stuff with the data
# call(["git","push"])
# sleep (2)
# call([user_name])
# sleep (2)
# call([password])
commands = '''
git push'''
user_name
password


process = subprocess.Popen('/bin/bash', stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out, err = process.communicate(commands.encode('utf-8'))
print(out.decode('utf-8'))

im的问题是git push命令会执行,但下一步输入用户名不会,所有后续命令也会执行……有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-22 10:14:51

我很久以前就遇到过类似的问题,并且能够使用下面的代码片段。

代码语言:javascript
复制
git-clone () {
    print "Bitbucket checkout enter bitbucket user/pass."
    echo -n "Bitbucket username:"
    read bit_user
    #echo "Bitbucket pass:"
    read -s -p "Bitbucket Password:" bit_pass
    su -c "cd /home/latlongo; git clone https://$bit_user:$bit_pass@bitbucket.org/xyz.git -b your_branch" -m $1
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44103517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档