我添加了一个别名:
$ alias anyalias="echo kallel"
如果我执行:
$ anyalias
kallel
它执行 echo
命令没有任何问题。
现在,如果我这样定义一个变量:
$ var="anyalias"
然后这样执行:
$ $var
-ash: anyalias: not found
然后我得到一个 shell 错误。
如何让 $var
运行在 anyalias
别名中定义的命令?
我不想改变调用 $var
的方式。但我正在寻找一种方法来更改别名的定义或将其导出。
最佳答案
考虑使用函数而不是别名:
anyfunc() { echo "kallel"; }
v=anyfunc
$v
kallel
更安全的方法是将函数调用存储在数组中(如果需要,还会存储参数):
var=(anyfunc)
"${var[@]}"
kallel
关于linux - 当别名被变量调用时如何调用别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27191119/