Zag*_*ags 3 python bash alias dynamic
我正在尝试使用 python 动态创建 bash 别名(例如,登录到一组服务器的别名)。我希望能够做这样的事情:
from subprocess import call
SERVERS = [
("example", "user@example.com"),
#more servers in list
]
for server in SERVERS:
call('alias %s="ssh %s"' % (server[0], server[1]), shell=True)
Run Code Online (Sandbox Code Playgroud)
问题是子进程在单独的 shell 会话中启动作业,所以程序运行良好,但对我运行它的 shell 会话没有任何影响。
pythonos.system
或尝试打印命令并将它们通过管道传送到 bash时也会出现同样的问题(所有这些都会创建别名,但在程序完成后立即销毁的新 shell 中)。
最终,这个目标是从 .bashrc 运行这个脚本
如何做到这一点?
您应该将别名命令写入标准输出。(例如,只使用打印)。
然后调用 Python 脚本的 shell 可以自己运行别名命令。
正如@that other guy 所评论的那样
eval "$(python yourscript.py)"
Run Code Online (Sandbox Code Playgroud)
在你.bashrc
应该做的
归档时间: |
|
查看次数: |
1949 次 |
最近记录: |