我需要将我使用的外壳程序的PS1变量设置为#
,而不是$
。我尝试使用env.prompts
,但这有点重量级,必须编写每个可能的步骤来以同样的方式响应散列符号。一旦远程会话建立,shell_env就适用于将环境变量添加到远程会话中,因此我在这方面遇到了死胡同。
有人知道在使用fabric时如何将默认提示符从$
更改为#
吗?
发布于 2018-09-08 09:10:59
答案是这在Fabric中不受支持。我已经使用pexpect的pxssh解决了我的问题。在登录方法中,当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的SOC上的情况。对于任何数量的其他非标准交互式外壳,如路由器、网络连接的PDU等,也可以这样做。
唯一的缺点是它不是织物。
https://stackoverflow.com/questions/52214465
复制相似问题