如何编写Bash脚本生成UUID并写入JSON数组格式文件
修正后的Bash脚本实现UUID生成与JSON数组输出
原脚本的问题点
- 执行
uuidgen的方式错误,原写法没有实际调用命令生成UUID,而是输出了字符串uuidgen - 生成的UUID没有用双引号包裹,不符合JSON字符串格式要求
- 缺少JSON数组的首尾标记
[和] - 最后一条UUID末尾多了逗号,违反JSON语法规范
完整修正脚本
generate_uuid_json() { local count=$1 local output_file=$2 # 写入数组开头 echo "[" > "$output_file" # 生成前count-1个带逗号的UUID行 for ((i=1; i < count; i++)); do echo "\"$(uuidgen)\"," >> "$output_file" done # 生成最后一个不带逗号的UUID行 if [ "$count" -gt 0 ]; then echo "\"$(uuidgen)\"" >> "$output_file" fi # 写入数组结尾 echo "]" >> "$output_file" } # 检查参数是否正确 if [ $# -ne 1 ]; then echo "用法: $0 <需要生成的UUID数量>" exit 1 fi # 遍历目标文件生成JSON数组 for file in file1.json file2.json; do generate_uuid_json "$1" "$file" done
关键说明
- 函数
generate_uuid_json专门处理单文件的UUID生成与JSON格式输出,接收两个参数:UUID数量、输出文件路径 - 拆分循环处理:前n-1个UUID末尾加逗号,最后一个UUID不加逗号,避免JSON语法错误
- 开头写入
[、结尾写入],构成标准JSON数组结构 - 增加参数检查,避免用户未传入UUID数量导致的错误
使用方法
比如要给file1.json和file2.json各生成3个UUID,执行命令:
./your_script.sh 3
内容的提问来源于stack exchange,提问作者wyn
相关产品推荐
相关产品推荐

