【发布时间】:2018-12-17 11:39:50
【问题描述】:
我正在尝试将证书(刚刚创建)上传到某个存储。
所以我可以读取我文件夹中的所有证书,并希望将每个文件的内容用于循环中的变量。
#!/bin/bash
dir="${0%/*}"
#for f in $(cat $dir"/"*.crt)
# do
# data='{"certificate_data":'"$f"'}'
#done
url="localhost:50183/api/v0.1/Certificates"
data='{"certificate_data":'$(cat $dir"/"*.crt)'}'
echo "$data"
所以我一次获得了所有证书,但我需要在 $data 中以正确的形式在循环中获取文件的每个内容,例如:
{"certificate_data":"<certificate_data_from_file>"}
{"certificate_data":"<certificate_data_from_file>"}
......
and so on
我知道我应该使用另一个循环,但不知道如何。
感谢任何提示!
【问题讨论】:
-
旁注:
$(cat file.txt)可以替换为$(< file.txt)。 -
不清楚您对这些信息做了什么,因为您的简单示例不断覆盖
data。但也许在您的同一个for循环中,您将拥有data_file='{"certificate_data":'"$f"'}'然后data_cert='{"certificate_data":'$(< $dir"/"*.crt)'}'后跟您想要对$data_file和$data_cert执行的任何逻辑。 -
好的,尝试删除
for f in $(cat $dir"/"*.crt) do data='{"certificate_data":'"$f"'}' done,没有它也可以,但是将所有证书填写在 1 个“certificate_data”中,我需要将 1 个证书放入 1 个“certificate_data” -
更改两个数据分配有帮助吗?
data="${data}{\"certificate_data\":....}"