我有需要我使用的shell将PS1变量设置为#
而不是$
。我尝试使用env.prompts
,但这有点重量级必须编写每个可能的步骤脚本以响应哈希符号。 shell_env适用于在远程会话建立后将其添加到远程会话中,所以我遇到了死胡同。
有人知道如何在使用fabric时将默认提示从$
更改为#
吗?
结果证明Fabric不支持这个问题。我用pexpect的pxssh解决了我的问题。在login方法中,当auto_prompt_reset设置为False时,可以指定在连接期间持续存在的备用original_prompt。因此,像:
from pexpect.pxssh import pxssh
# Set the ssh options for the connection.
conn = pxssh(options={'IdentityFile' : '/path/to/id_pem', 'StrictHostKeyChecking' : 'no', 'UserKnownHostsFile' : '/dev/null'})
conn.login(username='user', server='192.168.30.1', original_prompt='# ', auto_prompt_reset=False)
这对我有用。对于某些人的使用,原始提示可能不是很全面,但在这种情况下,对于我来说,它对shell有限。对于任何数量的其他非标准交互式shell(如路由器,网络连接PDU等)也可以这样做。
唯一的缺点是它不是面料。