首页 > 解决方案 > eval 不能在文件中使用别名

问题描述

我试图理解为什么eval在文件和 cli 中对别名的处理方式不同。当我要求eval在程序中使用带有别名的命令时,它找不到它。在cli上它没有问题。alias 还表明 bash 环境知道别名。

测试.sh

alias ECHO='echo'
cmd="ECHO dog"
alias
eval $cmd
eval "ECHO dog"

执行

$ bash test.sh
alias ECHO='echo'
test.sh: line 4: ECHO: command not found
test.sh: line 5: ECHO: command not found

$ alias ECHO='echo'
$ alias
alias ECHO='echo'
$ cmd="ECHO dog"
$ eval $cmd
dog
$ eval "ECHO dog"
dog

标签: bashevalalias

解决方案


推荐阅读