创建一个bash别名,其中输出是无空间的串联



这个问题真的很简单。我想创建一个别名,例如alias short="echo a$1"。当我运行short k时,我会得到输出a k,但是我实际想要的是ak。我该如何实现?

尝试

alias short="echo a$1b"
>> ab k

它不像您认为的那样工作。$ 1在设置为别名完成之前就解决了,因此:

alias -p 
>> alias short='echo ab'

但是,您正在混淆alias,这是一个愚蠢的一个令牌与另一个令牌的愚蠢替代品,而function则是旨在以您想在此处进行的方式采用参数。您可能是

function short(){ echo "a$1"; } 
short k 
>> ak

n.b。如果您已经定义了别名,请不要忘记unalias,因为在函数之前进行运行的别名。

最新更新