如何在保存命令的变量中传递命令参数?
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 情况下有效,而你 会如果您尝试将它们用于更复杂的命令,最终会被咬伤。使用功能;这就是语言支持它们的原因。
我想生成与此相同的输出:
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 情况下有效,而你 会如果您尝试将它们用于更复杂的命令,最终会被咬伤。使用功能;这就是语言支持它们的原因。