sshpass -p "xxxxxx" ssh root@xx.xx.xxx.xx "for i in {1..6}; do echo $i >> /voc/for_test; done"
语法本身并没有问题 直接复制在shell也没有任何问题,但在gitlab-ci.yam运行一直报语法错误,而文件是创建成功,但里面只有几个空白行,所以当时觉得是一个变量的问题,后面选择在变量$前加上转义符,结果就没有问题。
- sshpass -p "xxxxxx" ssh -o StrictHostKeychecking=no root@x.x.x.x "for i in {1..6}; do sed -i "s/childId:\ waitToConfig/childId:\ 5\$((\${i}-1))/g" /voc/sichuan01-0\$i-5\$((\${i}-1))/prd/pac/application-prd.yml; done"
这条循环替换的语句,加上转义符也会出现语法错误,后面尝试在for 执行的语句加上双引号问题可以得到解决" "
- sshpass -p "xxxxx" ssh -o StrictHostKeychecking=no root@x.x.x.x "for i in {1..6}; do "sed -i "s/childId:\ waitToConfig/childId:\ 5\$((\${i}-1))/g" /voc/sichuan01-0\$i-5"\$((\${i}-1))"/prd/pac/application-prd.yml"; done"