代码之家  ›  专栏  ›  技术社区  ›  Joakim90

使用getent passwd{1001..}作为子流程

  •  0
  • Joakim90  · 技术社区  · 2 年前

    我正在编写一个Python脚本,通过Ubuntu中的“useradd”子进程创建33个用户。之后,我希望通过使用另一个子流程perferablegetent来打印出添加的用户。我想添加{1001..1033},这样打印就省略了非种子信息,只显示基于UID的用户,但不知道如何执行。

    我曾尝试编写“subprocess.run([“getent”,“passwd”],{1001..1033})”,但这立即在Pycharm中发送了警告信号。如果没有“{1001..1033}”,子流程就会工作,但会打印出冗余信息墙。

    编辑:多亏了levant pied才得以解决。

    1 回复  |  直到 2 年前
        1
  •  1
  •   levant pied    2 年前

    这应该起作用:

    >>> subprocess.run(['getent', 'passwd'] + list(map(str, range(1001, 1033 + 1))))
    CompletedProcess(args=['getent', 'passwd', '1001', '1002', '1003', '1004', '1005', '1006', '1007', '1008', '1009', '1010', '1011', '1012', '1013', '1014', '1015', '1016', '1017', '1018', '1019', '1020', '1021', '1022', '1023', '1024', '1025', '1026', '1027', '1028', '1029', '1030', '1031', '1032', '1033'], returncode=2)