【发布时间】:2022-01-08 13:44:12
【问题描述】:
下面的这个脚本正在运行,我想从文件 svc1.data 中读取一个值并在语法中使用它。
administrator@dev-91:~$ while read -r name port ignored; do echo $name $port ; done <svc1.data
bendita-nussa 4003
但是下面的这个脚本不起作用,它一直说:-bash: syntax error near unexpected token `;'
administrator@dev-91:~$ while read -r name port ignored; do
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: $name
namespace: nussa
spec:
hosts:
- $name.nussa.svc.cluster.local
http:
- route:
- destination:
host: $name
port:
number: $port
subset: v1
; done <svc1.data
请帮忙,第二个脚本有什么问题..
【问题讨论】:
-
你没有关闭你的 HEREDOC pubs.opengroup.org/onlinepubs/9699919799/utilities/…
-
这个问题看起来只是一个印刷错误。
<<EOFalways 最后需要一个配对的EOF;这与其他任何 heredoc 使用没有什么不同。 -
@CharlesDuffy :你当然是对的,但错误不应该是 done missing 或 unexpected end-of-file,而是意外的分号?