我想这样做:
Bash代码:
grub --batch << EOF
root (hd0,1)
find /boot/grub/menu.lst
setup (hd0)
quit
EOF
Python代码:
subprocess.call('grub --batch << EOF', shell=True)
subprocess.call('root (hd0,1)', shell=True)
subprocess.call('find /boot/grub/menu.lst', shell=True)
subprocess.call('setup (hd0)', shell=True)
subprocess.call('quit', shell=True)
subprocess.call('EOF', shell=True)
但这不起作用.. 有人现在是解决这个问题的另一种方法吗?
非常感谢!
答案 0 :(得分:5)
解决方案是将脚本作为一个字符串发送:
script = '''
root (hd0,1)
find /boot/grub/menu.lst
setup (hd0)
quit
'''
print subprocess.Popen('grub', stderr=subprocess.STDOUT).communicate(script)[0]
shell=True
不是必需的。
答案 1 :(得分:1)
你可以做一些可怕的事情:
subprocess.call('echo -e "root (hd0,1)\nfind /boot/grub/menu.lst\nsetup (hd0)\nquit" | grub --batch', shell=True)
我确信有更好的方法可以做到这一点。