Bash curl:从stdin传递命名参数
我有一个web服务,它需要一些参数。我想通过stdin将其中一个参数(名为“data”)传递给curl。 我试过了 这不起作用,因为数据的值是“@-”而不是“某些数据” 是否可以使用@in curl将stdin的输入与特定参数相关联 编辑:我的目标是链接多个web服务,这样我传递的数据将是另一个curl调用的输出。这是不可能的吗Bash curl:从stdin传递命名参数,bash,curl,Bash,Curl,我有一个web服务,它需要一些参数。我想通过stdin将其中一个参数(名为“data”)传递给curl。 我试过了 这不起作用,因为数据的值是“@-”而不是“某些数据” 是否可以使用@in curl将stdin的输入与特定参数相关联 编辑:我的目标是链接多个web服务,这样我传递的数据将是另一个curl调用的输出。这是不可能的吗 curl -d x="foo" -d y="bar" -d data="@some data" "http://somewhere" 或 echo“some dat
curl -d x="foo" -d y="bar" -d data="@some data" "http://somewhere"
或
echo“some data”
可以是另一个命令或文件输入:$(您也可以将数据保存在变量中,然后像这样使用它:
VAR="some data"; curl -d x="foo" -d y="bar" -d data=$VAR "http://somewhere"
使用-d@-
例如:
输出:
<p>Hello <strong>world</strong>!</p>
你好世界
在哪里运行curl
?如何生成“一些数据”?你是从文件中获取的吗?我在问题中添加了信息如果你的操作系统支持它,你可以使用/dev/stdin
作为文件名,而不是-
。谢谢!第二个是我要找的。为什么需要@
呢?你现在只是在传递一个字符串,根本不使用标准输入。@chepner我不确定操作是如何完成的实际上使用它,但我只是假设-
是输入的表示形式,不包括@
-
在许多应用程序中表示输入。无论哪种方式,它都可以被忽略。我想说它必须被忽略;“一些数据”和$(…)现在只是字符串,而不是文件名。@ ChpEnter,当OP确认“代码> @ /代码>真的是不必要的时候,我会考虑这个变化。当我张贴这篇文章时,我注意到了不同之处,我是开放的,但是答案还是被证实了。
VAR="some data"; curl -d x="foo" -d y="bar" -d data=$VAR "http://somewhere"
echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown
<p>Hello <strong>world</strong>!</p>