curl(五)与shell结合的细节

一  curl与shell结合的细节

①  问题引入

需求: 传递变量以'json数据'给curl

curl(五)与shell结合的细节_第1张图片

②  方式1  反斜杠\转义

1、转义'内'层'双引号'  --> '了解即可'

 

特点: 可读性'低',并且很'复杂'

2、转义'外'层'单引号'   --> '推荐'

另一种方式: 只转义'外层单引号'

实质:通过转义'外层的单引号',使'内层双引号中'的'$variable'得以'被解析'

③  方式2

单引号周围添加双引号

1、案例  --> '拼接'

做法: 实质是'字符串拼接',注意是'成对'的

补充: --data中json key对应'值'是需要"双引号"包括的'字符串'

curl(五)与shell结合的细节_第2张图片

2、 '原理'解读

curl(五)与shell结合的细节_第3张图片

④  方式  了解

1、'@-' 重点

2、'@<'  重点

curl(五)与shell结合的细节_第4张图片

3、-d "$(cat <

curl(五)与shell结合的细节_第5张图片

4、'$@-' 熟悉

curl(五)与shell结合的细节_第6张图片

⑤  方式4   最佳实践

核心: 创建一个'生成数据'的'函数'

curl(五)与shell结合的细节_第7张图片

参考连接

⑥  方式5

说明: 自己常用的'动态'方式

原理:如果json数据体不变,只是'修改了数据',则sed '修改' 指定字段之后,curl直接'cat即可'

⑦  glob通配

url使用'通配符' -->一般是'有规律'的

# n=1,n=2...n=10
curl http://www.wolf.com/work/test.php?n=[1-10]

# 设定步长为3,n=1,n=4...
curl http://www.wolf.com/work/test.php?n=[1-10:3] 

# n=1,n=3
curl http://www.wolf.com/work/test.php?n={1,3}


常见:[]、{}、.、*
-g/--globoff   禁用'网址序列'和'范围使用{}和[]'

⑧  通过curl从url中执行bash

1、'前置'配置

curl(五)与shell结合的细节_第8张图片

细节点: 如果文件后缀是'txt',则浏览器会'展示','不会下载'

2、'方式1'   curl -s url | bash

说明:常用'首页'的方式,'index.html'存储'脚本'内容

常见方式:curl -sSfL https://www.baidu.com | bash

curl(五)与shell结合的细节_第9张图片

2、'方式2'  curl -s | bash -s arg1 arg2 .. '无名参'

下面: bash -s '位置参数'

curl(五)与shell结合的细节_第10张图片

3、方式3  '-- 具名传参' 更复杂

curl(五)与shell结合的细节_第11张图片

4、方式'4'

sh <(curl -s https://www.baidu.com)

你可能感兴趣的:(curl,shell,传参)