solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 84, column 126. ='${APP_NAME}' -n '${NAMESPACE}' -o json
时间: 2023-10-04 14:12:24 浏览: 217
根据错误提示,您在第84行的命令中存在问题。您需要根据错误提示中提供的建议来修复问题。要么转义一个字面的美元符号 `\$5`,要么使用大括号将值表达式括起来 `${5}`。
以下是修正后的代码片段:
```bash
sh '''
#!/bin/bash
max_restart_count=1
restart_count=0
while true; do
status=$(kubectl rollout status deployment ${APP_NAME} -n ${NAMESPACE})
if [[ $status == *"successfully rolled out"* ]]; then
echo "Deploy ${APP_NAME} rolled out successfully"
break
fi
restart_count=$(kubectl get pods -l app=${APP_NAME} -n ${NAMESPACE} -o jsonpath='{range .items[*]}{@.status.containerStatuses[0].restartCount}{"\n"}{end}' | awk '{sum+=$1}END{print sum}')
if ((restart_count > max_restart_count)); then
echo "Pod restart count exceeded the threshold. Deployment ${APP_NAME} failed."
exit 1
fi
sleep 5
done
'''
```
在这个修正后的代码中,我使用 `${APP_NAME}` 和 `${NAMESPACE}` 来确保这些变量的值被正确地解析。
希望这次修正解决了问题!如果您有其他疑问,请随时提问。
阅读全文