如何将 Linux 命令输出放入 aws cli 中的这个 json 字符串中?

如何将 Linux 命令输出放入 aws cli 中的这个 json 字符串中?

我希望能够使用 aws cli 更新 dynamodb 中的一行并更改其某些字段的值。

其中之一是布尔值。另一个是包含 unix 时间戳的数字字段。

aws --profile dev dynamodb update-item  --table-name my-dyno-table  \
  --update-expression "SET deleted = false, updated = :updated" \
  --expression-attribute-value '{":updated": {"N":`date +%s`}' \
  --key '{ ":s1": { "S": "83418294-eae0-4f90-ad56-3972e8c12a0d"}}' \
  --endpoint-url http://localhost:7070

我可以通过运行获取时间戳date +%s

但是,正如您在上面的 aws cli 命令中看到的,我无法将日期输出输入到

'{":updated": {"N":`date +%s`}'

zsh 的抱怨

解析参数“--表达式属性值”时出错:无效 JSON:期望值:第 1 行第 19 列(字符 18)接收到的 JSON:{":updated": {"N": date +%s}

date将值放入该字符串的正确方法是什么?

答案1

我的问题是我把它们放在一对单引号中。

这是一个解决方案:

"{\":updated\": {\"N\":`date +%s`}}"

相关内容