不能在bash脚本内的反引号中使用别名

时间:2015-09-09 13:16:41

标签: macos bash shell

我有以下脚本:

for i in 1 2 3 
do
 alias echo${i}="echo ${i}"
 alias aliastest${i}="echo aliastest `echo${i}`"
done

执行后,我希望在名称aliastest1,aliastest2,aliastest3中有3个别名。

但是我得到了:

./test.sh: line 5: echo1: command not found
./test.sh: line 5: echo2: command not found
./test.sh: line 5: echo3: command not found

请注意,当尝试从命令行执行echo1,echo2,echo3时,它会按预期工作。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

默认情况下,仅为交互式shell启用别名扩展。你需要添加

shopt -s expand_aliases

到脚本的开头。

可能无论您想要定义什么别名,您都应该将其定义为shell函数。