在 .bash_profile 中组合两个命令

在 .bash_profile 中组合两个命令

在我的.bash_profile文件中,我想设置一个命令别名,它是两个依次执行的命令。第一个命令从命令行获取一个参数,第二个命令实际上是脚本(位于~/bin具有执行权限的位置)。

我的个人资料文件有这样的:

alias pd='function pd2() { pushd "$@"; set_title_tab; }'

我尝试在 shell 中执行它,如下所示:

$ pd ~/Documents/

我收到一个错误:

-bash:意外标记“~/Documents/”附近出现语法错误

set_title_tab是一个由 William Scott 编写的 shell 脚本

有更好的方法来实现这一点吗?

答案1

别名不支持输入参数,并且不需要将函数包装在别名中。只需使用一个函数:

pd() {
    pushd "$@"
    set_title_tab
}

pd ~/Documents

答案2

为什么不是这个:

pd () { pushd "$@"; set_title_tab; }

您现在拥有的是别名内的函数定义,这是......不寻常的。一旦定义了一个函数(就像我pd上面所做的那样),您就可以像任何其他命令一样使用它。

相关内容