我想让python脚本(.py)创建一个UNIX别名,可以在程序运行后加入。我怎么能这样做?
我试过这个:
#!/usr/bin/python
import os
os.system('alias cdd="cd ~/Desktop/"')
答案 0 :(得分:3)
alias
命令的范围是它运行的shell。当该shell退出并且新的shell启动时,它将不会定义别名。
为shell提供持久定制的方式是使用在shell首次启动时运行的shell脚本。例如,bash将运行.bash_profile
和.bashrc
中的一个或两个,具体取决于它的调用方式和其他本地配置。有关如何处理此问题的所有具体细节,请参阅您感兴趣与之交互的shell的文档。
如果要对shell进行持久配置更改,则需要修改shell的启动脚本。
os.system
运行shell并告诉shell运行您提供的命令。然后shell退出。因此,使用alias
运行os.system
命令基本上无效。
以下是一个示例,说明如何调整bash配置以持久定义别名:
with open(expanduser("~/.bashrc"), "at") as bashrc:
bashrc.write(
"\n"
"# Added by myprogram on somedate\n"
"alias cdd='cd ~/Desktop/'\n"
)