如何将bash参数附加到需要将别名命令中的加号连接到输入参数的别名中

  • 本文关键字:参数 别名 连接 bash 命令 bash arguments alias
  • 更新时间 :
  • 英文 :


如果可能的话,我需要作为一个别名来做这件事

alias d='pushd +$1'

由于某些原因,这将不起作用,因为当我执行别名时,它会给我以下信息:

d 3
-bash: pushd: +: invalid number
pushd: usage: pushd [-n] [+N | -N | dir]

但这将工作

~ $alias d='pushd +3'
~ $d
/Library/Java/JavaVirtualMachines $

在自变量变量旁边加一个加号是不起作用的,我不知道为什么。

有没有办法做到这一点?

谢谢你,

Mike

编辑:这是为了下面的讨论:

~ $alias d='cd $1'
~ $d ~/Downloads
~/Downloads $d ~/Music
~/Music $d ~/Documents
~/Documents $

这里要明确的是,我的问题与需要知道如何创建接受参数参数的别名无关。

我的具体问题是,当我接受传递的参数,然后尝试将其作为参数包含在另一个命令中时,该参数在传递的参数变量旁边有一个加号,该加号以美元符号开头。提供的答案不起作用,并给我同样的错误。

编辑:根据给出的第一个答案,解决方案是在我的.bash_profile文件中创建一个FUNCTION,我做到了,而且效果很好!

这是我添加到配置文件中的内容:

d() {
pushd "+$1";
}

尽管我不相信我要说的话会很重要,但我无论如何都会说:

当人们因为对海报有一定的了解而结束提问时,这是令人沮丧的。这个问题的结尾引用了一篇文章,该文章教人们如何写一个接受论点的别名。

首先,这从来不是我的问题,其次,这个问题结束时给出的建议答案不会让我更接近解决方案。

我从这个问题和讨论中了解到,bash概要文件脚本中的函数的行为就像别名一样。这就是我解决问题所需要的知识。

问题在这个网站上太容易被关闭了,在我看来,傲慢而不考虑OP的实际或可能的需求。。。他们在没有向OP进行任何询问的情况下就被关闭了,以确定这个问题是否应该继续存在。。。这对这个网站来说是一个巨大的失败。。。让人们很容易忽视像我们这样的人来到这里的全部原因。

改为使用函数:

d() { pushd "+$1"; }

最新更新