当我进入特定文件夹时,有没有办法更改别名或 PATH 变量cd
(反之亦然,当我更改出别名时,将别名改回来/恢复 PATH)?现在,我有一个别名dc="docker-compose"
,当我在特定目录中时,我想向该命令添加参数。
答案1
你可以使用shell 函数代替别名,并让它根据值有条件地添加参数$PWD
dc ()
{
case $PWD in
"path to/somedir")
set -- foo bar "$@"
;;
*)
:
;;
esac;
docker-compose "$@"
}
也可以看看在 Bash 中,何时使用别名,何时使用脚本,何时编写函数?
请注意,这dc
也是命令行计算器实用程序的名称,因此您可能需要选择不同的名称。
答案2
对于每个“特殊”目录,创建一个包含别名命令的./.set_alias
文件,以及一个包含相应命令的文件。alias
./.clear_alias
unalias
然后,颠覆cd
内置功能。
在你的~/.bashrc
:
cd()
{
[[ -f ./.clear_alis ]] &&;source ./.clear_alis
# do the "cd"
[[ -z "$*" ]] && builtin cd $HOME
[[ -n "$*" ]] && builtin cd "$*"
[[ -f ./.set_alis ]] && source ./.set_alis
}
没有这些文件的目录不会受到影响。