Bash:在斜杠后面插入一个空白字符时回显参数

时间:2009-10-03 18:33:00

标签: bash

我正在尝试使用bash中的命令行参数构造路径。我在.bashrc中添加了以下行:

alias hi="echo '/path/to/$1'"

但是,这会产生:

~$ hi foo
/path/to/ foo

知道斜线后面的空白是从哪里出来的?

由于

汉纳斯

2 个答案:

答案 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