window是怎么用curl啊,好像只能用双引号 单引号提示 Could not resolve host

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了window是怎么用curl啊,好像只能用双引号 单引号提示 Could not resolve host相关的知识,希望对你有一定的参考价值。

curl -X PUT 'localhost:9200/accounts/person/1' -d '

"user": "张三",
"title": "工程师",
"desc": "数据库管理"
'
但是里边内容是双引号,外边就必须是单引号啊

参考技术A "\"name\":\"cc\"" 我也遇到过这个问题,用这样就解决了 参考技术B 很抱歉的通知你: 4D1因为吃了官司,已经关停了所有的COD游戏服务器 你可以试试Nexus的,但是应该需要一段时间(他们还在排查BUG)

使用 Jenkins 管道上的 AWS cli “期望用双引号括起来的属性名称”

【中文标题】使用 Jenkins 管道上的 AWS cli “期望用双引号括起来的属性名称”【英文标题】:"Expecting property name enclosed in double quotes" with AWS cli on Jenkins Pipeline 【发布时间】:2017-09-27 09:42:48 【问题描述】:

我收到一条错误消息

期望用双引号括起来的属性名称:第 1 行第 3 列(字符 2)

在 Jenkins 管道上运行 AWS CLI 以创建 EC2 容器服务的任务定义。有趣的是这个脚本能够在命令行中运行而没有任何错误。

aws ecs register-task-definition --family $FAMILY --container-definitions "[\"name\":\"wildfly\",\"image\":\"$REPOSITORY\",\"memory\":3024,\"essential\":true,\"portMappings\":[\"containerPort\":8080,\"hostPort\":8080,\"protocol\":\"tcp\"]]"` 

这是完整的错误信息

aws ecs register-task-definition --family wildfly2-b47 --container-definitions [name:wildfly, image:****/backend:b47, memory:3024, essential:true, portMappings:[containerPort:8080, hostPort:8080, protocol:tcp]]

期望用双引号括起来的属性名称:第 1 行第 3 列 (字符 2)

这是詹金斯阶段代码

    stage('Deploy')
        withCredentials([string(credentialsId: 'ecr-repository', variable: 'repo'), 
        [$class: 'AmazonWebServicesCredentialsBinding', 
        accessKeyVariable: 'AWS_ACCESS_KEY_ID', 
        credentialsId: 'ecr-credentials', 
        secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) 
            sh '''
            bash
            set -x
            export AWS_DEFAULT_REGION=us-west-2
            CLUSTER="default"
            VERSION=b$BUILD_NUMBER
            FAMILY=nxpmp2-$VERSION
            SERVICE="backend"
            REPOSITORY=$repo/backend:$VERSION
            #Register the task definition in the repository
            aws ecs register-task-definition --family $FAMILY --container-definitions "["name": "wildfly", "image": $REPOSITORY, "memory": 3024, "essential": true, "portMappings": ["containerPort": 8080, "hostPort": 8080, "protocol": "tcp"  ] ]"
            #Update the Service
            #aws ecs update-service --cluster $CLUSTER --region $AWS_DEFAULT_REGION --service $SERVICE --task-definition $FAMILY
--desired-count 1
            '''
        

请帮帮我

【问题讨论】:

【参考方案1】:

查看--container-definitions 部分。您已经通过语法高亮看到它:

--container-definitions "["name":

您在双引号内使用双引号(name 附近)。

以下应该可以代替:

--container-definitions '["name": ...]'

【讨论】:

【参考方案2】:

如果你想在管道的 shell 脚本中使用一些 groovy 变量,我上面的答案是有问题的。

问题是 aws cli 坚持一个 quete,然后你不能将你的 froovy 变量指向如下:

FOO = "bar"
sh'''
   aws ecs ...  --container-definitions '["name": $FOO]'
'''

这不会给你 bar 作为输出,但会给 $FOO 这将导致错误。 经过几个小时的折腾并未能找到干净的解决方案后,我在这篇文章中找到了解决方法 Access a Groovy variable from within shell step in Jenkins pipeline

所以解决办法是

FOO = "bar"
sh'''
   aws ecs ...  --container-definitions '["name":''' + $FOO + ''']'
'''

希望能帮到你

【讨论】:

以上是关于window是怎么用curl啊,好像只能用双引号 单引号提示 Could not resolve host的主要内容,如果未能解决你的问题,请参考以下文章

mysql+php程序中sql语句中的引号使用方法,啥时候用双引号啥时候用单引号

sql语句中啥时候用单引号啥时候用双引号?如图中的红为啥用双引号?

JSON的键究竟需要用双引号括起来吗

opencsv写入时去掉双引号

在excel函数公式中,啥时候要用双引号、单引号,啥时候要用连接符&?

Java 中SQL查询 查询条件本身包含单引号怎么办?