使用python动态创建bash别名

时间:2014-02-11 00:37:08

标签: python bash dynamic alias

我正在尝试使用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)

问题是子进程在单独的shell会话中启动作业,因此程序运行正常,但对我运行它的shell会话没有任何作用。

python的os.system出现了同样的问题,或者尝试打印命令并将它们传递给bash(所有这些都创建了别名,但是在程序完成后会立即销毁的新shell中)。

最终,目标是从.bashrc

运行此脚本

如何做到这一点?

1 个答案:

答案 0 :(得分:4)

您应该将别名命令写入stdout。 (例如,只使用印刷品) 然后调用Python脚本的shell可以自己运行别名命令。

由@that其他人评论

eval "$(python yourscript.py)"
.bashrc中的

应该