[英]Using pexpect to get output of 'ls' command
我正在嘗試使用 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.
此代碼似乎不起作用並打印空行。
任何指示或建議將不勝感激。
如果您可以安排配置無密碼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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.