gpt4 book ai didi

python - 使用 pexpect 获取 'ls' 命令的输出

转载 作者:太空宇宙 更新时间:2023-11-03 16:36:31 24 4
gpt4 key购买 nike

我正在尝试使用 pexpect 以用户身份登录并尝试打印所有可用的 cron:

import pexpect
import os, time
passwd = "mypass"
child = pexpect.spawn('su myuser')
child.expect('Password:')
child.sendline(passwd)
child.expect('$')
child.sendline('crontab -l')
i =child.expect(['%','.*$', '$' ])
print i # prints 1 here so, the shell is expected.
print child.before # this doesn't print anything though.

此代码似乎不起作用并打印空行。

  1. 无法找出此代码的问题
  2. 如果有更好的方法来列出其他用户的 cron 作业,给定用户名和密码

任何指示或建议将不胜感激。

最佳答案

如果您可以安排配置无密码 sudo 访问,那么上面的内容就变成了:

import subprocess
output = subprocess.check_output('sudo -u myuser crontab -l', shell=True)

如果您需要继续使用 su,那么您可以向其传递一个命令并避免尝试解析 shell 提示符:

import pexpect
passwd = "mypass"
child = pexpect.spawn('su myuser -c "crontab -l"')
child.expect('Password:')
child.sendline(passwd)
child.expect(pexpect.EOF)

print child.before

关于python - 使用 pexpect 获取 'ls' 命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37167504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com