我有一个名为file.yaml的yaml文件
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: dashboarding-route
spec:
host: dashboarding-route.domain
port:
targetPort: 100
tls:
termination: passthrough
to:
kind: Service
name: dashboarding
然后我运行这个命令
template=$(cat "file.yaml" | sed "s/domain/$MYVARVALUE/g")
MYVARVALUE变量值可以是任何值。
在执行此之后,我想在相同的结构作为一个yaml文件的模板变量的值。例如,当我执行echo $template时,我想要的输出是
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: dashboarding-route
spec:
host: dashboarding-route.domain
port:
targetPort: 100
tls:
termination: passthrough
to:
kind: Service
name: dashboarding
有人能帮我解决这个问题吗?
1条答案
按热度按时间liwlm1x91#
解决方案一:“只需使用普通echo,并在变量周围加上双引号”-Gordon Davidson
下面是
stdout
:解决方案二:使用
printf
代替echo
您可以使用
printf
而不是echo
来保留yaml
,如下所示:下面是
stdout
:解决方案三:使用
base64
编码/解码stdout
保存格式的另一种选择是在存储/传输数据时对其进行编码,然后在访问/接收数据时对其进行解码:
这也给出了以下
stdout
:最后一种解决方案对于在机器之间移动格式敏感的数据(如ssh键或散列值)特别有用;请注意,这不是加密的替代品!