如何在保存命令的变量中传递命令参数?

How do I pass a command parameter in a variable holding the command?

我想生成与此相同的输出:

bash utilities.bash "is_net_connected"

但我不知道如何传递 "is_net_connected" 如果命令和文件存储在这样的变量中:

T=$(bash utilities.bash)

这些我都试过了,但好像不管用。它没有在 utilities.bash 中接收 </code>。</p> <pre><code>$(T) "is_net_connected" $(T "is_net_connected")

这不是最好的导入方式,但我正在努力避免让功能块弄乱我的主脚本。

T=$(bash utilities.bash) 不保存命令;它 运行s 命令并保存其输出。你想定义一个函数。

T () {
    bash utilities.bash "$@"
}

# Or on one line,
# T () { bash utilities.bash "$@"; }

现在

T "is_net_connected"

将 运行 bash utilities.bash 传递给 T 的任何参数。在这种情况下,别名的作用相同:alias T='bash utilities.bash'。但是,对 T 应该做的任何更改都可能需要从别名切换到函数,因此您不妨使用函数开始。 (另外,您必须在脚本中明确启用别名扩展。)


您可能会想使用

T="bash utilities.bash"

$T is_net_connected

别这样。 不加引号的参数扩展是不好的做法,只在 select 情况下有效,而你 如果您尝试将它们用于更复杂的命令,最终会被咬伤。使用功能;这就是语言支持它们的原因。