【发布时间】:2022-02-02 17:18:00
【问题描述】:
我正在尝试使用子进程从 python 获取当前的 bash 版本。
在我的终端中,我可以使用printf "%s\n" $SHELL 获取/bin/bash 和printf "%s\n" $BASH_VERSION 获取5.1.8(1)-release。
所以我准备了这个python脚本:
>>> import subprocess
>>> subprocess.check_output(['printf "%s\n" $SHELL'], shell=True, stderr=subprocess.STDOUT)
b'/bin/bash\n'
>>> subprocess.check_output(['printf "%s\n" $BASH_VERSION'], shell=True, stderr=subprocess.STDOUT)
b'\n' <-- This output is wrong
谁能解释一下为什么子进程中 printf $BASH_VERSION 的输出与终端不同?
【问题讨论】:
标签: python bash shell ubuntu subprocess