./gitlab-deploy/.gitlab-deploy.staging.sh:第 8 行:“0”:语法错误:预期操作数(错误标记为“0”)
Posted
技术标签:
【中文标题】./gitlab-deploy/.gitlab-deploy.staging.sh:第 8 行:“0”:语法错误:预期操作数(错误标记为“0”)【英文标题】:./gitlab-deploy/.gitlab-deploy.staging.sh: line 8: “0”: syntax error: operand expected (error token is "“0”") 【发布时间】:2021-04-22 21:28:29 【问题描述】:我正在用 bash 编写脚本,但在部署到我的 ec2 时出现此错误:
这是我的代码:
# !/bin/bash
#Get servers list
set -f
string=$QA_DEPLOY_SERVER
array=($string//,/ )
#Iterate servers for deploy and pull last commit
for i in “$!array[@]”; do
echo “Deploy project on server $array[i]”
ssh ubuntu@$array[i] "cd /opt/bau && git pull origin master"
done
脚本有什么问题,我该如何解决?非常感谢。
【问题讨论】:
你说错误在第16行,但你没有告诉我们这是哪一行。 也许您在变量中有空格,您可以在其中进行不带引号的参数扩展。使用-x
运行您的脚本进行检查。
嗨,所以错误发生在:“echo “Deploy project on server $array[i]”行,更新了我的问题。
代码有“智能引号”,这些是否也在您的实际代码中?比较 “”
与 ""
是的,这些都在我的代码中。我一直在关注这篇文章:lucabecchetti.medium.com/…
【参考方案1】:
谢谢@BenjaminW
我不得不更改导致脚本出现问题的“智能引号”。从 “”
更改为 ""
解决了这个问题。
下面是我更新的脚本
for i in "$!array[@]"; do
echo "Deploy project on server $array[i]"
ssh ubuntu@$array[i] "cd /opt/bau && git pull origin master"
done
【讨论】:
以上是关于./gitlab-deploy/.gitlab-deploy.staging.sh:第 8 行:“0”:语法错误:预期操作数(错误标记为“0”)的主要内容,如果未能解决你的问题,请参考以下文章