基于命令输出的Bash选择菜单

时间:2019-06-20 08:52:11

标签: bash shell

如何根据其他命令输出创建选择菜单? 例如,运行以下命令:

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

但是不知道如何通过命令输出来做到这一点。

1 个答案:

答案 0 :(得分:0)

为了将命令的输出用作另一命令的输入,您可以使用反引号,或者更易读的$()(但是后者并不总是有效)。

例如,在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 ...`

显然,您需要从配置中确切指定所需的信息,以使其正常工作。