如何在自定义bashrc文件中设置别名以编辑该文件本身?
解决方法
方法一:直接写死文件路径(最简单)
既然你的自定义bashrc路径是固定的~/.local/share/mybashrc,直接在别名里明确指定这个路径就行:
alias edit-conf='nano ~/.local/share/mybashrc'
保存文件后重新加载配置(source ~/.local/share/mybashrc),之后执行edit-conf就会直接打开你的自定义bashrc文件。
方法二:用函数动态获取文件路径(更灵活)
如果担心以后文件路径变动,不想每次修改别名,可以用bash函数代替别名,利用$BASH_SOURCE变量(该变量会指向当前正在加载的bash配置文件路径):
edit-conf() { nano "$BASH_SOURCE" }
同样保存后重新加载配置,调用edit-conf就能正确打开当前的自定义bashrc文件。
为什么之前的方法不行?
你之前用$0,在别名里这个变量代表的是当前shell进程的路径(也就是/bin/bash),不是你要编辑的配置文件路径,所以才会打开bash的执行文件。
内容的提问来源于stack exchange,提问作者Rashedul Hasan Rafi
相关产品推荐
相关产品推荐

