如何让Python2.7处理具有&&;退出;?

如何让Python2.7处理具有&&;退出;?,python,linux,shell,python-2.7,tkinter,Python,Linux,Shell,Python 2.7,Tkinter,我有一个桌面图标(LinuxMintSystem),它调用一个脚本(conky),但也需要退出,这样我就不会一直打开终端窗口。我正在尝试将其转换为屏幕上的python按钮 我可以让Python按钮运行脚本,但一旦脚本启动并正常运行,我就无法让它关闭终端 这是正常的命令:/home/user/.conky\u start.sh&&exit 当前Python按钮脚本: import Tkinter from Tkinter import * import subprocess top = Tkin

我有一个桌面图标(LinuxMintSystem),它调用一个脚本(conky),但也需要退出,这样我就不会一直打开终端窗口。我正在尝试将其转换为屏幕上的python按钮

我可以让Python按钮运行脚本,但一旦脚本启动并正常运行,我就无法让它关闭终端

这是正常的命令:
/home/user/.conky\u start.sh&&exit

当前Python按钮脚本:

import Tkinter
from Tkinter import *
import subprocess

top = Tkinter.Tk()

def run_conky():
   subprocess.call(['/home/user/.conky_start.sh', '&&', 'exit'], shell=True)

B = Tkinter.Button(top, text ="Conky", command = run_conky)

B.pack()
top.mainloop()
你应使用:

subprocess.call('/home/user/.conky_start.sh && exit', shell=True)
shell=True
时,
call
的第一个参数必须是表示命令行的字符串。如果传递列表,则第一个元素用作命令行,其他参数作为选项传递给底层shell

换句话说,代码中的
&&exit
从未执行过,因为它是作为选项传递给shell的(可能只是忽略了无法识别的选项)


有关
子流程
函数的参数的更多信息,请参见问题。

要在尝试启动shell脚本后退出Python脚本,请执行以下操作:

#!/usr/bin/env python
import subprocess
import Tkinter

root = Tkinter.Tk()

def start_conky():
    try:
        subprocess.Popen(['/home/user/.conky_start.sh']) # don't wait
    finally:
        root.destroy() # exit the GUI

Tkinter.Button(root, text="Conky", command=start_conky).pack()
root.mainloop()

是否要在启动
.conky_start.sh
后退出Python脚本?感谢您的建议,该脚本可能会重复。事实上,这是我尝试的第一件事。可悲的是,这并没有对退出问题产生影响。太棒了,这很有效,让我更进一步!嗯,当脚本退出时,它开始输出更多信息。另一个被调用的脚本会查找正在运行的媒体播放器以显示歌曲标题/艺术家。它有点抱怨它总是找不到任何东西。改天再调查。希望我能投票,但我需要更多的9个声望点: