在别名中使用参数变量

Using argument variables in an alias

在 Windows 10 上使用 Cygwin。 在 ~/.bashrc 中,我写:

test=hola
alias add_hello="echo ; echo hello"
alias add_hello2="echo $test; echo hello"

当两者都是 运行 时,结果是:

$add_hello hola
hello hola
$add_hello2
hola hello

为什么这些 运行 的顺序不同?我试过取消它们的别名,并在不使用 .bashrc 的情况下简单地重新定义它们,但问题是一样的。另外,编写一个名为 "add_hello":

的脚本
#!/bin/bash
echo ; echo hello

有效:

$./add_hello hola
hola 
hello

当你从 bashrc 调用它时,你期望 </code> 是什么,你的 <code> 永远不会被打印出来,因为你在别名中提到了它但没有设置它。由于它是空的,echo 不会打印它。(echo "'<nothing here> hello' aa")

-->alias add_hello="echo hello"
-->add_hello aa       #< this is same as echo "'hello' aa"
-->hello aa          

你最好在 bashrc 文件中尝试 bash 函数:

add_hello()
{
echo 'hello'
echo ""
}

你的第一个测试add_hello hola结果

echo ; echo hello holla