我目前正在运行一个依赖谷歌云平台构建文件的管道。我们希望自动化最后一步,即文件上传。
- "gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && curl -F 'image=@*.raucb' http://upload.url.com/upload'"
现在的问题是curl-F似乎不接受通配符,有可能做到这一点吗?
请注意,您的命令有两组",一组在另一组中,没有后退
无论如何,
gcloud compute ssh build-server-turnoff-when-unused --zone=europe-west4-a --command "bash -c 'cd /mnt/disks/sdb/Project/ci_dev/tmp/deploy/images/project && for fileimg in *.raucb; do curl -F image="${fileimg}" http://upload.url.com/upload ; done '"
注:
- 我使用";bash-c";传递给-命令,使其仅远程生成单个进程(避免环境问题(
cd &&
而不是cd ;
,因此如果cd出现故障,则for不会运行- 双
"
内单'
内双"
以避免过度转义(交替引号技巧( - foreach循环中不需要文件扩展名,因为对于
for fileimg in *.raucb
,var$fileimg将包含完整的文件名 - 必须将变量的$引用为
$
,否则它将被父shell解释