linux - 当别名被变量调用时如何调用别名

标签 linux bash shell alias

我添加了一个别名:

$ 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/

相关文章:

Linux:如何设置一个应用程序使用不同的声卡?

linux - 使用 awk 或 sed 从字符串中抓取文本的特定部分

PHP on Apache on Linux : when web app starts processes, 如果 Apache 重新启动,是否可以让这些进程保持事件状态?

c - 用于 Linux 的 C 应用程序的运行时配置

linux - 括号和 ips 之间的所有内容都解析失败

linux - 使用 tar 打包相对于路径的文件

linux - 无法检查目录是否存在 shell 脚本

java - Shell脚本java程序不能正确写入文件

bash - 在 bash 脚本中获取调用者脚本的名称

c - 当应用程序连接服务器与终端时如何将应用程序绑定(bind)到用户