bash 技巧常用常新

bash 中有很多的命令,很多的技巧,通过不同的 pipeline(管道) 组合之后那更是五花八门,这里整理几个常用的和大家分享。
1、常用的参数导出为常量,方便下次使用
export api_token=2deba25d13c17cfcfa20679fb1f8a3e3
解释
export
后的变量可以在此shell 及后续开启的子 shell 中都生效
2、多用循环就不需要再去写代码了
for mac in '30:9C:23:B1:CD:59' '30:9C:23:B1:CF:94' '30:9C:23:B1:F6:B2' '30:9C:23:B1:F6:CA' do echo go with ${mac} curl -X GET \ http://172.21.2.21:8806/api/v1/cameras \ -H 'Content-Type: application/json' \ -H 'cache-control: no-cache' \ -H "Authorization: Bearer ${api_token}" \ -H "user-mac: ${mac}" done
解释
${var_name}
可以引用之前赋值的环境变量var_name
for in do done
这个模式可以用来循环执行某些命令
3、图片什么的base64太麻烦了,直接嵌入到命令行更好
curl -X POST \ http://172.16.2.70:5638/api/faces \ -H "Authorization: Bearer ${api_token}"" \ -H 'Content-Type: application/json' \ -d '{ "photos": [ "'$(base64 -i ~/Desktop/x.jpg)'" ], "person": "Alice", "typeId": "67" }'
解释
base64
命令在不同平台下参数不同,这里是在 macos 下的,直接把当前用户桌面上的 x.jpg 转成对应的 base64 编码字符串嵌入命令到 curl 的 post 请求的data 数据段时由于大多数不需要转义,但是嵌入命令需要转移,那么用支付串连接机制连接起来即可。
4、更多技巧不断更新中
echo 'hello world'
解释
解释1
解释2