我正在尝试使用bash中的命令行参数构造路径。我在.bashrc中添加了以下行:
alias hi="echo '/path/to/$1'"
但是,这会产生:
~$ hi foo
/path/to/ foo
知道斜线后面的空白是从哪里出来的?
由于
汉纳斯
答案 0 :(得分:5)
简而言之,别名不能参数。你可以改为创建一个函数:
$ function hi() { echo "/path/to/$1"; }
$ hi foo
/path/to/foo
阅读here了解其他选项。
答案 1 :(得分:1)
正如LukášLalinský所述,别名不接受参数,因此$1
为空。但是,即使你这样做了:
alias hi="echo '/path/to/'"
你会得到一个空间。这样做的原因是,如果你有这样的别名:
alias myls=ls
并做了:
myls filename
它不会尝试运行:
lsfilename