在~/..bashrc中,我在Windows 10上使用Cygwin编写:
test=hola
alias add_hello="echo $1; echo hello"
alias add_hello2="echo $test; echo hello"当两者都运行时,其结果是:
$add_hello hola
hello hola
$add_hello2
hola hello为什么要按不同的顺序运行呢?我尝试过消除它们的别名,只需重新定义它们而不使用.bashrc,但问题是一样的。另外,编写一个名为“add_hello”的脚本:
#!/bin/bash
echo $1; echo hello将发挥作用:
$./add_hello hola
hola
hello发布于 2019-10-23 18:50:15
当您从bashrc调用$1时,您的$1从未被打印,因为您在别名中提到了这一点,但没有设置它。由于它是空的,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 "$1"
}发布于 2019-10-23 18:53:53
您的第一个测试add_hello hola的结果是
echo $1; echo hello hollahttps://stackoverflow.com/questions/58529250
复制相似问题