提取列数据到变量
file="composerInfo"read numberread ip port user password <<< $(echo `awk 'NR =="'$number'" {print $1,$2,$3,$4}' $file`)./core.ex $ip $port $user $password
匹配搜索k8s 中的 pod 并链接上去
# alias
alias pod='./pod.sh $1'
# pod.sh
#!/bin/bash
pod=$1;
count=$(kubectl get pods | grep $pod | wc -l)
echo $pod "---total:" $count
if [ $count -eq 0 ];then
echo "pod not find"
exit
fi
echo "`kubectl get pods | grep $pod |awk '{print NR,$0}'`"
while read -p "Enter pod index > " index
do
pn=$(kubectl get pods |grep $pod | awk -v x=$index -F: 'NR==x {print $1}' |awk -F ' ' '{print $1}')
if [ -z $pn ];then
echo "pod not find "
else
echo $pn;
kubectl exec -it $pn -- bash
break
fi
done
[k8spre2@k8s-manage ~]$ kubectl get pods
NAME READY STATUS RESTARTS AGE
assistant-api-crond-deployment-76f6bfb875-jgpvw 1/1 Running 0 55m
assistant-api-php-fpm-deployment-5f598d4cb8-7549k 1/1 Running 0 55m
fe-msite-ng-deployment-7c455f8969-w9cfz 1/1 Running 0 19d
growth-ui-ng-deployment-85dc997747-kqx8f 1/1 Running 0 15m
### 过滤,加上编号后输出
[k8spre2@k8s-manage ~]$ pod kapi-web
kapi-web ---total: 4
1 kapi-web-consumer-deployment-5cc5fdd879-9gz5s 1/1 Running 0 136m
2 kapi-web-crond-deployment-8f845c55c-74lhx 1/1 Running 0 136m
3 kapi-web-internal-php-fpm-deployment-85f855f5b6-22lql 1/1 Running 0 136m
4 kapi-web-php-fpm-deployment-6cc9f7c5c6-fltb9 1/1 Running 0 136m
Enter pod index >
### 等待用户输入 read 读取用户输入内容
awk -v x=$index -F: 'NR==x {print $1}'
### 将用户输入的值带入到 awk 变量中,与行号进行对比返回对应的行
|awk -F ' ' '{print $1}'
### 过滤展示第一列
if [ -z $pn ];then
echo "pod not find "
为空这提示退出,重新扥带用户输入,否则则进入容器中
else
echo $pn;
kubectl exec -it $pn -- bash
break