簡體   English   中英

在Bash腳本中模擬TAB鍵按下以自動完成

[英]Emulate TAB key press in Bash script to autocomplete

我在Kubernetes中有簡單的Bash腳本運行命令,但是我需要在一個命令中自動完成以繼續:

#!/bin/bash
DATE=$(date +%Y-%m-%d_%H:%M:%S)
printf "Available Kubectl contexts:\n\n"
kubectl config get-contexts -o=name | sort -n
printf "%s\n"
echo -ne "Select Kubectl context: "; read KUBE_CONTEXT
for I in $KUBE_CONTEXT ; do
    kubectl config use-context $KUBE_CONTEXT
done
echo -ne "Path to file containing Job ID list: "; read -e JOB_ID_LIST
printf "%s\n"
echo "Setting port forwarding to Prometheus POD in $KUBE_CONTEXT" ;

這就是我需要自動完成的地方,因為每個kubectl環境中的pod名稱都不同。

kubectl port-forward -n prometheus prometheus-prometheus-RANDOM_TEXT-RANDOM_TEXT 20001:9090

例如:

kubectl port-forward -n prometheus prometheus-prometheus-6465c4df4c-4dvf7 8080:9090 &

我手動輸入時自動完成功能正常,但我希望Bash在腳本中自動完成它。 可能嗎?

在腳本中使用shell的交互式功能應該是最后的選擇。

我們可以不用:讓我們首先獲取命名空間中的所有pod名稱; 然后過濾所需的廣告連播名稱。

podName=$(kubectl get pods -n prometheus -o name | grep "^pod/prometheus-prometheus-" | cut -d/ -f2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM