如何在 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 别名中包含参数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中的 Prepared Select 语句中包含参数? [复制]

如何在文件中包含php别名

如何在 Git 别名中包含 --no-pager?

如何在bash shell脚本中包含文件

如何在字符串中包含href链接? [复制]

如何在vue js中包含jquery库以及如何调用? [复制]