bash - 基于命令输出的 Bash 选择菜单
问题描述
如何根据其他命令输出制作选择菜单?例如运行以下命令:
kubectl config get-contexts
我得到以下输出:
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* Name1 Cluster1 Auth1
Name2 Cluster2 Auth3
Name3 Cluster3 Auth3
我想要实现的是将 NAME 和 CLUSTER 列打印为菜单选项,如果选择了任何选项,则将其作为变量传递给另一个命令:
kubectl config use context $NameX
但是不知道如何使用命令输出来做到这一点。
解决方案
为了将命令的输出用作另一个命令的输入,您可以使用反引号,或者更具可读性$()
(但后者并不总是有效)。
例如,提供有关ls
“程序”的更多信息:
which ls
file /bin/ls
这可以缩短为:
file $(which ls)
或者:
file `which ls`
在您的示例中,它将类似于:
kubectl config use context $(kubectl config get-contexts ...), or:
kubectl config use context `kubectl config get-contexts ...`
显然,您需要从配置中准确指定您需要哪些信息才能使其正常工作。
推荐阅读
- python - 基因蛋白质序列数据库
- javascript - document.createElement() 函数只运行一次
- laravel - 当我运行 php artisan token:generate 1 in laravel 时找不到类,所以我可以获得 Swagger UI Auth 的不记名令牌
- c# - 我可以使用 lambda 表达式忽略事件中的代码吗
- c - 使用 /dev/random 生成函数,调用时显示分段错误(核心转储)错误
- algorithm - 是否有来自 st 的路径通过特殊节点?
- java - PassiveExpiringMap 没有过期的对象
- jquery - 使用 Power Query 通过 REST API 查询分页 XML
- xcode - 如何在 Azure Pipelines 中升级 XCode?
- html - 'counter-reset' 属性是否总是必须在父容器上定义?