如何使用Python 2.7将shell命令行输出放到Ubuntu上的变量

时间:2017-05-14 10:20:10

标签: python-2.7 shell ubuntu

我使用id user命令,我得到用户的信息,例如,我得到uid=1000(user), gid=1000(user), groups=1000(user), 4(adm), 24(cdrom), 27(sudo), 30(dip), 46(pugdev), 113(lpadmin), 128(sambashare)的输出我想做的是,不知何故将每个数字放入一个不同的变量(或者数组)然后将它们用作变量,稍后我会将程序中的这些数字翻译成单词,这样你就可以理解用户的信息,例如取组的数字并将其翻译成组号,如果是管理员或标准用户等,请获取用户ID并进行翻译。

2 个答案:

答案 0 :(得分:1)

您不需要使用shell来生成id user等等,因为Python有一个模块:grp。见这里:https://docs.python.org/2/library/grp.html

对于用户信息,pwdhttps://docs.python.org/2/library/pwd.html

答案 1 :(得分:0)

解析' id'的输出会更容易。 python中的命令。你可以使用命令替换将shell中的值传递给python脚本,如下所示,

PARAMETER="$(id user)"
python script.py $PARAMETER

然后从脚本中,你可以清理出类似的值(你可能需要根据你的具体要求改变它),

import sys

lst=list()
args=sys.argv[1:]
print args
for i in args:
    if '=' in i:
        lst.append(i[i.find('=')+1:i.find('(')])
    else:
        lst.append(i[:i.find('(')])



print lst