这是我的fabfile
from fabric.api import local, task
@task
def tracking(suffix=""):
buffer_ = "*" * 40
print (buffer_)
local("whoami")
print (buffer_)
local("env | grep dn")
#this one comes out empty...
print (buffer_)
out = local("history")
print (buffer_)
除了历史记录:
之外,所有内容都按预期打印出来****************************************
[localhost] local: whoami
jluc
****************************************
[localhost] local: env | grep dn
dn_cb=/Users/jluc/.berkshelf/cookbooks
dn_cc=/Users/jluc/kds2/chef/chef-repo/cookbooks
dn_khtmldump=/Users/jluc/kds2/out/tests/dump2static
dn_cv=/Users/jluc/kds2/chef/vagrant/ubuntu2
****************************************
[localhost] local: history
****************************************
但命令行上的历史没有错......
history | tail -5
613 history
614 fab -f fabfile2.py tracking
615 history | tail -5
616 cls
617 history | tail -5
是什么给出的?添加shell="/bin/bash"
也无济于事。
MacOs Sierra
答案 0 :(得分:1)
根据docs:
local当前不能同时打印和捕获输出,就像run / sudo那样。捕获kwarg允许您根据需要在打印和捕获之间切换,默认为False。
我将此解释为含义如果您希望history
命令起作用,则需要先捕获输出。尝试更改所有local
命令,以包含shell="/bin/bash"
和capture=True