【发布时间】:2020-05-06 17:01:55
【问题描述】:
我尝试更改 yaml 文件中的副本数。我的脚本查找需要我的信息,并且必须从键盘读取文本,但他跳过读取并向我发送“sed:无输入文件”。我做错了什么?谢谢关注
#!/bin/bash
FILES=./test1/*
for file in $FILES
do
echo "$file"
grep -v -e "commonconfigs" -e "commonsecrets" -e "internalurls" $file | grep -w "[^-] name:\|replicas:"
while IFS= read line
do
currentline=$(echo "$line" | grep -o "replicas")
if [ "$currentline" == "replicas" ];then
read -p "replics:" rep
sed -i 's/replicas:.*/replicas:$rep/g' > "$line"
fi
done < "$file"
done
输出:
./test1/anal.yaml
name: anal
replicas: 1
name: anal
template:
sed: no input files
示例文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: devices-api
spec:
selector:
replicas: 1
template:
metadata:
fluentd: "true"
annotations:
prometheus.io/scrape: 'true'
spec:
containers:
- name: devices-api
image:
imagePullPolicy: "Always"
resources: {}
env:
- name: Swagger__Enabled
valueFrom:
configMapKeyRef:
name: commonconfigs
---
apiVersion: apps/v1
kind: Deployment
metadata:
selector:
app: event-jobs
replicas: 1
template:
【问题讨论】:
标签: bash for-loop sed while-loop sh