zoukankan      html  css  js  c++  java
  • shell脚本执行curl命令

    问题:shell脚本写了一个简单的curl执行,但是执行不起来结果

    从postman里生成的命令如下

    curl -X PUT 
      https://t-im-prod.hillinsight.tech/v1/accounts/deleteAccount 
      -H 'Authorization: ' 
      -H 'CustomHeader: xx' 
      -H 'Postman-Token: 937e5aae-9e94-4221-bd30-d6a4eabf6111' 
      -H 'cache-control: no-cache'

    然后复制到shell文件里

    #!/bin/bash
    if [ -z "$1" ]; then
        echo "please input param"
        exit -1
    fi

    #简单的这么写即可生效
      #curl -X GET www.baidu.com

    cmd=`curl -X PUT https://xx/xxx -H 'Authorization: xx' -H 'CustomHeader: $1' -s` echo "$cmd"

    执行了,但是没完全执行。没生效,后来查询发现shell中单引号 ' 和双引号 "有区别,修改后生效

    #!/bin/bash
    if [ -z "$1" ]; then
        echo "please input param"
        exit -1
    fi
    
    #-s 防止输出这些信息
    #   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    #                                  Dload  Upload   Total   Spent    Left  Speed
    #   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    
    cmd=`curl -X PUT 
      https://xx/xxx 
      -H "Authorization: xx" 
      -H "CustomHeader: $1" -s`
    echo "$cmd"

    结论:shell中单引号 ' 和双引号 "有区别

     单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.

    例如:

    n=3
    echo '$n'  #输出结果:$n
    echo "$n"  #输出结果:3

      

  • 相关阅读:
    反射(8)程序集反射 Type 类
    反射(5)CLR 运行时探测程序集引用的步骤
    反射(1)程序集基础知识
    csc.exe(C# 编译器)
    证书(1)数字签名基础知识
    反射(7)动态程序集加载Load方法
    SignTool.exe(签名工具)
    反射(3)程序集加载 Assembly类
    关于卡巴斯基安全免疫区随笔
    文本提取工具 TextHelper
  • 原文地址:https://www.cnblogs.com/LordNeo/p/15268111.html
Copyright © 2011-2022 走看看