首页 > 解决方案 > 我们如何从 python 程序/脚本创建别名?

问题描述

我想通过 python 程序创建一个别名。我打算使用 python 作为 shell 脚本的替代品。

我尝试的是:

import os

os.system('alias go2dir="cd /i/want/to/goto/this/dir"')

......它不起作用。我知道原因 - 系统命令 'alias...' 正在另一个 shell 中执行,而不是在执行此 python 脚本的当前 shell 中执行。因此,此 shell 无法使用该别名。

我不知道的是 - (通常,)我们如何在执行这个 python 程序的同一个 shell 中执行来自 python 程序的命令。所以(在这种情况下)别名在 shell 终端打开之前可用?

标签: pythonpython-3.x

解决方案


其他希望在用户的 shell 中自动执行操作的应用程序的工作方式是将 shell 命令写入其标准输出。然后你可以用eval.

makealias.py:

print('alias go2dir="cd /i/want/to/goto/this/dir"')

然后在bash中:

eval "$(python makealias.py)"

像这样工作的标准 Unix 程序的一个示例是tset使用该-s选项。


推荐阅读