1

众所周知,在终端 shell 中创建别名非常简单:

ZZ:~ zhangzhao$ alias c='uname'
ZZ:~ zhangzhao$ c
Darwin
ZZ:~ zhangzhao$

但现在我想通过 Python3 脚本做同样的事情。我检查了参考手册,发现这些命令工作可以使用subprocess模块来解决。

然后我写下面的脚本:

import subprocess
subprocess.call(["alias", "c=\'uname\'"])

但请注意,此操作不会对您当前使用的 shell 生效,而是会使用一个子 shell,然后离开。所以这个脚本所做的一切都是徒劳的。

所以我的问题是:如何通过执行 python 脚本在当前使用的 shell 中创建别名?

4

1 回答 1

1

一般来说,你不能

您设置的所有别名仅在当前 shell 中有效,新别名只能由 shell it self 添加,而不是子 shell 或子进程。

在 hack 方式中,您可以使用 gdb 附加您的父 shell 并更改其别名表。但是在现代 Unix 中,不允许子进程附加父进程。您需要降低系统安全级别

于 2013-11-13T06:25:46.320 回答