我有以下脚本:
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时,它会按预期工作。
我做错了什么?
答案 0 :(得分:1)
默认情况下,仅为交互式shell启用别名扩展。你需要添加
shopt -s expand_aliases
到脚本的开头。
可能无论您想要定义什么别名,您都应该将其定义为shell函数。