嗯,众所周知,在终端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中创建别名?
答案 0 :(得分:1)
一般来说,你不能
您设置的所有别名仅适用于当前shell,而新的aliaes只能由shell自己添加,而不是子shell或子进程。
以黑客方式,您可以使用gdb附加父shell并更改其别名表。但是在现代Unix中,子进程不允许附加父进程。您需要降低系统安全级别