创建一个 bash 别名,其中输出是没有 space 的串联

Create a bash alias where the output is a concatenation without a space

问题很简单。我想创建一个别名,例如 alias short="echo a"。当我 运行 short k 我得到输出 a k,但我真正想要的是 ak。我怎样才能做到这一点?

尝试

alias short="echo ab"

>> ab k

它并不像您想象的那样工作。 $1 在别名设置完成之前得到解决,因此:

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

但从更大的角度来看,您混淆了 aliasfunction 之间的混淆,前者是将一个标记替换为另一个标记,后者旨在以您在这里尝试采用的方式获取参数。您可能想要的是

function short(){ echo "a"; } 

short k 
>> ak

N.B。如果你已经定义了别名,不要忘记unalias它,因为别名在函数之前有get运行。