bash - 我如何在 bash 变量中保护 curl 结果
问题描述
当我
curl -d "param1=value1¶m2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null
在普通命令行上运行命令时,我得到了请求的结果{"success":false,"cause":"Token needed"}
。
我在 bash 脚本上需要这个结果,但是当我尝试运行它时
curl = "$(curl -d "param1=value1¶m2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null)"
echo $curl
我没有收到请求的结果 我收到了这个
[1/2]: "success":false --> <stdout>
--_curl_--"success":false
curl: (3) URL using bad/illegal format or missing URL
[2/2]: "cause":"Token needed" --> <stdout>
--_curl_--"cause":"Token needed"
curl: (3) URL using bad/illegal format or missing URL
我如何在我的 bash 脚本中使用正确的结果?
解决方案
您的命令不是变量赋值,它尝试curl
使用参数=
和命令替换的输出执行。删除前后的空格字符=
,您可以省略命令替换周围的引号(这是不需要引号的少数情况之一)。
curl=$(curl -d "param1=value1¶m2=value2" -X POST https://xxx.xxxx.de/xx/xx.php 2>/dev/null)
echo "$curl"
推荐阅读
- flutter - 按下时按钮的动画未按要求发生
- symfony - Symfony 5 stripe v3 找不到 CHECKOUT_SESSION_ID
- java - Java 迭代器 - 无限循环
- kotlin - 每次创建新的服务器实例时生成一个随机端口号
- java - Android Studio - 无法使用可执行文件确定 Java 版本
- java - java 文件在 cmd 中工作,但使用 .jar 扩展名重命名时返回错误
- assembly - 将 armv7m 指令翻译成 LLVM IR
- spring - 在 Spring Boot 中如何以及在何处保存“系统范围的数据”?
- javascript - 更改按钮 ID、内容和类的功能不起作用
- javascript - 如何使用 Debounce 去抖动句柄提交