如何在 bash 别名中包含参数? [复制]
Posted
技术标签:
【中文标题】如何在 bash 别名中包含参数? [复制]【英文标题】:How do I include parameters in a bash alias? [duplicate] 【发布时间】:2010-12-21 17:53:52 【问题描述】:尝试创建:
alias mcd="mkdir $1; cd $1"
获取:
$ mcd foo
usage: mkdir [-pv] [-m mode] directory ...
-bash: foo: command not found
我做错了什么?
【问题讨论】:
这个是先问后答的! 【参考方案1】:别名只能用一些任意文本替换命令的第一个单词。它不能使用参数。
您可以改为使用 shell 函数:
mcd()
test -e "$1" || mkdir "$1"
cd "$1"
【讨论】:
也可能是一个shell脚本?命名为没有扩展名的文件 mcd?函数有何不同或更好? 它不能作为 shell 脚本工作,因为脚本会在子 shell 中运行。为了使 cd 达到预期的效果,它必须在调用者的 shell 中运行,而不是在子 shell 中。 这个函数应该怎么调用? 啊,很好,找到了***.com/questions/7131670/… 这个函数应该像任何其他命令一样被调用,无论它是由函数、内置命令还是外部命令实现的。您只需要确保该函数已在您的 shell 中定义,这可以通过将其放入您的 shell 启动文件中来完成。以上是关于如何在 bash 别名中包含参数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章