Linux cat EOF保持缩进并解释变量

Linux cat EOF保持缩进并解释变量,linux,eof,cat,Linux,Eof,Cat,使用“EOF”,它可以保持缩进,但不能解释变量 [root@master ~]# registry=10.105.100.4/library [root@master ~]# cat > /etc/sysconfig/kubelet << 'EOF' > KUBELET_EXTRA_ARGS=--pod-infra-container-image=${registry}/pause:3.1 \ > --runtime-cgrou

使用“EOF”,它可以保持缩进,但不能解释变量

[root@master ~]# registry=10.105.100.4/library
[root@master ~]# cat > /etc/sysconfig/kubelet << 'EOF'
> KUBELET_EXTRA_ARGS=--pod-infra-container-image=${registry}/pause:3.1 \
>                    --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice \
>                    --feature-gates=LocalStorageCapacityIsolation=true \
>                    --kube-reserved-cgroup=/kubepods.slice --kube-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi \
>                    --system-reserved-cgroup=/system.slice --system-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi \
>                    --eviction-hard=memory.available<500Mi,nodefs.available<10% \
>                    --max-pods=250
> EOF
[root@master ~]# cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=--pod-infra-container-image=${registry}/pause:3.1 \
                   --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice \
                   --feature-gates=LocalStorageCapacityIsolation=true \
                   --kube-reserved-cgroup=/kubepods.slice --kube-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi \
                   --system-reserved-cgroup=/system.slice --system-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi \
                   --eviction-hard=memory.available<500Mi,nodefs.available<10% \
                   --max-pods=250
只需使用EOF,它可以解释变量,但不能保持缩进

[root@master ~]# registry=10.105.100.4/library
[root@master ~]# cat > /etc/sysconfig/kubelet << EOF
> KUBELET_EXTRA_ARGS=--pod-infra-container-image=${registry}/pause:3.1 \
>                    --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice \
>                    --feature-gates=LocalStorageCapacityIsolation=true \
>                    --kube-reserved-cgroup=/kubepods.slice --kube-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi \
>                    --system-reserved-cgroup=/system.slice --system-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi \
>                    --eviction-hard=memory.available<500Mi,nodefs.available<10% \
>                    --max-pods=250
> EOF

[root@master ~]# cat /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS=--pod-infra-container-image=10.105.100.4/library/pause:3.1                    --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice                    --feature-gates=LocalStorageCapacityIsolation=true                    --kube-reserved-cgroup=/kubepods.slice --kube-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi                    --system-reserved-cgroup=/system.slice --system-reserved=cpu=500m,memory=500Mi,ephemeral-storage=1Gi                    --eviction-hard=memory.available<500Mi,nodefs.available<10%                    --max-pods=250
[root@master ~]# 

有没有办法让两者同时生效?

在使用bash和zsh测试的行末尾,您必须避开反斜杠;我假设其他外壳与此类似:

$ cat > foo.txt <<EOF
line 1 \\
 line 2
EOF
$ cat foo.txt
line 1 \
 line 2