使用python3脚本创建unix别名
众所周知,在终端外壳中创建别名非常容易:使用python3脚本创建unix别名,python,bash,unix,python-3.x,command,Python,Bash,Unix,Python 3.x,Command,众所周知,在终端外壳中创建别名非常容易: ZZ:~ zhangzhao$ alias c='uname' ZZ:~ zhangzhao$ c Darwin ZZ:~ zhangzhao$ 但是现在我想通过Python3脚本做同样的事情。我查看了ref手册,发现可以使用子流程模块解决此类命令工作 然后我写下下面的脚本: import subprocess subprocess.call(["alias", "c=\'uname\'"]) 但是请注意,此操作不会对您当前使用的shell生效,相反
ZZ:~ zhangzhao$ alias c='uname'
ZZ:~ zhangzhao$ c
Darwin
ZZ:~ zhangzhao$
但是现在我想通过Python3脚本做同样的事情。我查看了ref手册,发现可以使用子流程
模块解决此类命令工作
然后我写下下面的脚本:
import subprocess
subprocess.call(["alias", "c=\'uname\'"])
但是请注意,此操作不会对您当前使用的shell生效,相反,它将使用子shell,然后离开。所以这个脚本所做的一切都是徒劳的
所以我的问题是:如何通过执行python脚本在当前使用的shell中创建别名?通常,您不能
您在中设置的所有别名仅在当前shell中有效,新的aliaes只能由shell自身添加,而不能由子shell或子进程添加
在hack方式中,您可以使用gdb连接父shell并更改其别名表。但在现代Unix中,子进程不允许附加父进程。您需要降低系统安全级别一般来说,您不能
您在中设置的所有别名仅在当前shell中有效,新的aliaes只能由shell自身添加,而不能由子shell或子进程添加
在hack方式中,您可以使用gdb连接父shell并更改其别名表。但在现代Unix中,子进程不允许附加父进程。您需要降低系统安全级别简短回答:不行。如果您使用此别名在python脚本中进行更多调用,则可以使python变量等于您要进行的别名的字符串,然后仅使用该变量进行调用。否则,我认为不可能使用python脚本生成别名,这样您就可以在shell中使用它调用python的shell本身就是另一个shell…那么,我可以将
别名c='uname'
放入中。bash\u别名
。那么,在更改.bash\u别名后,我可以使用任何方法来自动source.bash\u别名
?我会将其放入.bashrc中。简短回答:您不能。如果您使用此别名在python脚本中进行更多调用,您可以使python变量等于您要生成的别名字符串,只需使用该变量进行调用。否则,我认为不可能使用python脚本生成别名,这样您就可以在shell中使用它调用python的shell本身就是另一个shell…那么,我可以将别名c='uname'
放入中。bash\u别名
。那么,在更改.bash\u别名
后,我是否可以使用任何方法来自动源.bash\u别名
?我会将其放入。bashrc@OP:如何附加gdb:您可以将此答案作为示例代码进行检查:@OP:如何附加gdb:您可以将此答案作为示例代码进行检查: