如何使用 python 子进程从 Linux 中仅提取 SUDO 版本
How to extract only SUDO version from Linux with python Subprocess
我只想从 Linux
output
中提取 SUDO
version
。我有 command
sudo -V 2>/dev/null| grep "Sudo version" 2>/dev/null
我想用 Subprocess
我尝试了一些方法,但没有用。由于 Subprocess
需要 list
个参数,但我无法正确使用它。我们如何使用 Python
?
使用 Subprocess 来做到这一点
使用subprocess.check_output
.
>>> import subprocess
>>> subprocess.check_output("sudo --version", shell=True, stderr=subprocess.STDOUT, encoding="utf-8").splitlines()[0]
'Sudo version 1.8.31'
- 需要标志
shell=True
才能通过您的 shell 解释命令行;否则你需要做 [shutil.which("sudo"), "--version"]
.
stderr=subprocess.STDOUT
将 sudo 的 stderr 输出重定向到 stdout,这就是 check_output
读取的内容。
encoding="utf-8"
check_output
自动将字节输出解码为 UTF-8。
.splitlines()[0]
将输出拆分为多行并获取第一行。如果您的 sudo
实现没有在第一行打印版本,您需要对其进行调整。
我只想从 Linux
output
中提取 SUDO
version
。我有 command
sudo -V 2>/dev/null| grep "Sudo version" 2>/dev/null
我想用 Subprocess
我尝试了一些方法,但没有用。由于 Subprocess
需要 list
个参数,但我无法正确使用它。我们如何使用 Python
?
使用subprocess.check_output
.
>>> import subprocess
>>> subprocess.check_output("sudo --version", shell=True, stderr=subprocess.STDOUT, encoding="utf-8").splitlines()[0]
'Sudo version 1.8.31'
- 需要标志
shell=True
才能通过您的 shell 解释命令行;否则你需要做[shutil.which("sudo"), "--version"]
. stderr=subprocess.STDOUT
将 sudo 的 stderr 输出重定向到 stdout,这就是check_output
读取的内容。encoding="utf-8"
check_output
自动将字节输出解码为 UTF-8。.splitlines()[0]
将输出拆分为多行并获取第一行。如果您的sudo
实现没有在第一行打印版本,您需要对其进行调整。