来自变量的 Bash 别名

pre*_*ney 5 bash alias function

有没有办法创建 bash 别名(或函数),其名称来自变量?

例如,是否可以按照以下方式做一些事情:

create_alias_with_name() {
  alias $1="echo a custom alias"
}
Run Code Online (Sandbox Code Playgroud)

或者类似这样的事情:

create_func_with_name() {
  $1() {
    "echo inside a function with a variable name"
  }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我更希望有某种可以为我注册函数的函数“工厂”。这可能吗?或者超出了 Bash 的能力?

Car*_*rum 5

你尝试过吗?你的第一个例子效果很好。

您可以通过添加以下内容来完成第二项工作eval

create_func_with_name() {
  eval "$1() {
    echo inside a function with a variable name
  }"
}
Run Code Online (Sandbox Code Playgroud)