首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在System.nanoTime文件中使用${=(System.nanoTime())}的curl

在System.nanoTime文件中使用${=(System.nanoTime())}的curl
EN

Unix & Linux用户
提问于 2018-08-26 09:55:53
回答 1查看 187关注 0票数 0

我想在使用卷曲时能够生成系统的纳米秒序列。

我的代码是这样的:

curl -X POST -H的内容类型: text/xml‘-d @req.xml server_URL > result.xml

req.xml包含以下内容:

代码语言:javascript
复制
${=(System.nanoTime())}

因此,请求中的期望值应该类似于:

2163586109424686

但它却给了我:

${=(System.nanoTime())}

任何将其转换为系统定时器的方法,以纳秒为单位。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-08-26 10:57:58

不幸的是,cURL没有本地的值插值机制。但是,您可以使用一些sed魔术来替代:

代码语言:javascript
复制
sed "s/\${TIME}/$(date +%s%N)/g" req.xml | curl -X POST -H 'Content-Type: text/xml' -d @- server.tld > result.xml

date命令将以指定的格式输出当前时间。%s是自UNIX时代以来的秒数,%N是当前秒的纳秒数。

在bash中,$(...)中的"-quoted字符串将在另一个参数中插入命令的输出。这将生成一个sed命令,用当前时间替换${TIME}的所有实例。curl参数-d @-使它从stdin读取POST数据。虽然您可以保留每个表达式的语法,但我认为这是不值得的。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/464897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档