使用具有散列作为Python Fabric中主要提示的shell

问题描述 投票:1回答:1

我有需要我使用的shell将PS1变量设置为#而不是$。我尝试使用env.prompts,但这有点重量级必须编写每个可能的步骤脚本以响应哈希符号。 shell_env适用于在远程会话建立后将其添加到远程会话中,所以我遇到了死胡同。

有人知道如何在使用fabric时将默认提示从$更改为#吗?

python fabric
1个回答
0
投票

结果证明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等)也可以这样做。

唯一的缺点是它不是面料。

© www.soinside.com 2019 - 2024. All rights reserved.