我正在尝试将证书(刚刚创建的)上传到一些存储。
所以我可以读取文件夹中的所有证书,并希望将每个文件的内容用于循环中的变量。
#!/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
我知道我应该使用另一个循环,但不知道如何。
感谢任何提示!
最佳答案
这应该可以完成工作:
#!/bin/bash
for f in ./dir/*.crt
do
data='{"certificate_data":"'"$(< "${f}")"'"}'
echo "${data}"
done
测试:
$ ls ./dir/*
./dir/cert1.crt ./dir/cert2.crt
$ cat ./dir/*
I am certificate1.
I am certificate2.
$ ./cert.sh
{"certificate_data":"I am certificate1."}
{"certificate_data":"I am certificate2."}
关于linux - 从 bash 中的文件内容设置变量(循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53814510/