当变量调用时,我如何调用别名

MOH*_*MED 2 linux bash shell alias

我添加了一个别名:

$ alias anyalias="echo kallel"
Run Code Online (Sandbox Code Playgroud)

如果我执行:

$ anyalias
kallel
Run Code Online (Sandbox Code Playgroud)

它执行echo命令没有任何问题.

现在,如果我以这种方式定义变量:

$ var="anyalias"
Run Code Online (Sandbox Code Playgroud)

然后以这种方式执行:

$  $var
-ash: anyalias: not found
Run Code Online (Sandbox Code Playgroud)

然后我收到了一个shell错误.

如何$var运行anyalias别名中定义的命令?

我不打算改变打电话的方式$var.但我正在寻找一种方法来改变别名的定义或导出它.

anu*_*ava 6

而不是别名考虑使用函数:

anyfunc() { echo "kallel"; }
v=anyfunc
$v
kallel
Run Code Online (Sandbox Code Playgroud)

更安全的是将函数调用存储在数组中(如果需要,还将存储参数):

var=(anyfunc)
"${var[@]}"
kallel
Run Code Online (Sandbox Code Playgroud)