提取列数据到变量

  1. file="composerInfo"
  2. read number
  3. read ip port user password <<< $(echo `awk 'NR =="'$number'" {print $1,$2,$3,$4}' $file`)
  4. ./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