在Windows 10上使用Cygwin。 在〜/ .bashrc中,我写道:
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
答案 0 :(得分:2)
从bashrc调用$1
时,您期望$1
是什么,您的echo "'<nothing here> hello' aa"
不会被打印出来,因为您在别名中提到了它,但没有进行设置。由于它为空,所以echo不会打印它。(-->alias add_hello="echo hello"
-->add_hello aa #< this is same as echo "'hello' aa"
-->hello aa
)
add_hello()
{
echo 'hello'
echo "$1"
}
最好在bashrc文件中尝试bash功能:
{{1}}
答案 1 :(得分:1)
您的第一个测试add_hello hola
的结果
echo $1; echo hello holla