如何使用-作为别名?


11

当我使用openSUSE 11.3时,它已经设置了几个别名。我经常使用的两个是+for pushd .-for popd。现在在Debian上,我不知道如何创建第二个。alias -=popd尝试读取-=别名的命令选项。我尝试在其周围加上引号(单引号和双引号),并在其前面加上反斜杠,但我一直在收到错误消息。有什么建议么?

谢谢

Answers:


12

尝试这个:

alias -- -=popd

至少对我有用:

usr@srv % alias -- -=echo
usr@srv % - test
test

谢谢,效果很好。到底是--做什么的?

4
@Wolf:对于大多数命令,--标记选项的结尾;之后的一切都是争论。例如,logger foo -x bar将记录“ foo bar”并将其-x作为选项,而logger -- foo -x bar将其视为消息“ foo -x bar”中的普通单词。
2011年

1
--表示没有更多的选择遵循在命令行上,以下-的不会被解释为选项。因此,这允许您以;-) cat开头的文件-
binfalse 2011年

@grawity和@binfalse:感谢您的解释,这非常有帮助!很高兴知道。

7

在其中,bash您可以创建这样命名的函数:

+() { pushd "$@"; }
-() { popd "$@"; }

是什么$@
Lazer

2
@Lazer:在sh和bash中,$@扩展为提供给函数或脚本的所有参数。未报价的方式与相同$*。但是,在双引号内时,它会扩展为与原始给出的完全相同的词,而不会进行任何其他拆分。
user1686 2011年

@Lazer:$@扩展到传递给函数的所有参数(等效于"$1" "$2" ...)。有关更多信息,请执行man bash并搜索特殊参数。
2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.