bashrc alias参数添加一个空格

问题描述 投票:0回答:2

我想在bashrc中设置一个别名来读取一个参数并将其输出到屏幕。

alias myecho='echo 123' 

如果我做

$> myecho 

我能得到正确的结果。

123

但是,如果我对别名提出一个论点

alias myecho2="echo 123.$1"

而我呢

$> myecho2 555 

我将在我输入的参数前面获得一个空格。

123 .555

我该怎么做才能摆脱白色空间?

bash arguments alias
2个回答
0
投票

别名没有参数。在这种情况下,$1是空的。

echo 123.$1实际上是echo 123.,只有命令的myecho2部分扩展到echo123.。随后的空间和555没有改变。

您可以使用函数来实现所需的行为:

function myecho3() {
    echo 123.$1          # The quotes are not needed
}
myecho3 555

# Displays
# 123.555

0
投票

你可以这样做:

alias myecho2="printf '123.%s\n'"

然后myecho foo扩展到printf '123.%s\n' foo,它做你想要的。

© www.soinside.com 2019 - 2024. All rights reserved.