unexpected EOF while looking for matching `"' syntax error: unexpected end of file

unexpected EOF while looking for matching `"' syntax error: unexpected end of file

我在 shell 脚本

下有问题 运行
git diff -U0 HEAD^ HEAD pkg.json | grep "^\+\s" | grep -o \'"v.*"\' | sed \'s/"//g\' | \
xargs -I{} sh -c \'docker pull alpine:{} \'

错误是

./shell/shell.sh: line 2: unexpected EOF while looking for matching `"'

问题是您的 sed 命令出错了。 sed 's/"//g' 会起作用。

试试这个:

git diff -U0 HEAD^ HEAD pkg.json | grep "^\+\s" | grep -o \'"v.*"\' | sed 's/"//g' | \
xargs -I{} sh -c \'docker pull alpine:{} \'

问题出在您的 sed 命令上:

sed \'s/"//g\'

当你有 \' 时,这是一个转义的单引号。然后您稍后有一个 ",并且脚本的其余部分不再有 " 个字符。因此 bash 在脚本的其余部分中搜索结尾 " 但找不到它。

我相信你的意思不是转义单引号:

sed 's/"//g'