在别名中使用参数变量
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
在 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