阅读 202

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

 

  

 

原文:https://www.cnblogs.com/LordNeo/p/15268111.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐