【问题标题】:How do I include parameters in a bash alias? [duplicate]如何在 bash 别名中包含参数? [复制]
【发布时间】: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

我做错了什么?

【问题讨论】:

  • 这个是先问后答的!

标签: alias mkdir bash


【解决方案1】:

别名只能用一些任意文本替换命令的第一个单词。它不能使用参数。

您可以改为使用 shell 函数:

mcd()
{
  test -e "$1" || mkdir "$1"
  cd "$1"
}

【讨论】:

  • 也可能是一个shell脚本?命名为没有扩展名的文件 mcd?函数有何不同或更好?
  • 它不能作为 shell 脚本工作,因为脚本会在子 shell 中运行。为了使 cd 达到预期的效果,它必须在调用者的 shell 中运行,而不是在子 shell 中。
  • 这个函数应该怎么调用?
  • 啊,很好,找到了stackoverflow.com/questions/7131670/…
  • 这个函数应该像任何其他命令一样被调用,无论它是由函数、内置命令还是外部命令实现的。您只需要确保该函数已在您的 shell 中定义,这可以通过将其放入您的 shell 启动文件中来完成。
猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 2017-06-11
  • 2021-01-07
  • 2011-05-02
  • 2012-04-24
  • 2015-01-29
  • 2015-08-17
  • 1970-01-01
相关资源
最近更新 更多