前言
应用场景:在实际项目中需要用到shell脚本来自动批量插入部分数据,而json数组就是比较常用的一种数据类型。
**现在有一批关于楼层房间号的数据需要以json数组形式插入到数据库中。**
下面直接附上脚本内容
数据展示
[root@localhost ~]# cat floor.txt
1601
1612
1705
脚本内容
#!/bin/bash
floors=`cat floor.txt`
declare -a floor_info #定义空数组
fid=1 #定义fid
num=0 #初始化数组下标
#遍历房间号并给每个房间号加一个key和value也就是fid
for floor in $floors
do
floor_info[$num]={\\\"fid\\\":\\\"$fid\\\",\\\"floor\\\":\\\"$floor\\\",\\\"url3d\\\":\\\"\\\"}
let fid++
let num++
done
floor_infos=`echo \\\[${floor_info[*]}\\\] |sed 's/ /,/g'`
echo $floor_infos
执行脚本
[root@localhost ~]# . json.sh
\[{\"fid\":\"1\",\"floor\":\"1601\",\"url3d\":\"\"},{\"fid\":\"2\",\"floor\":\"1612\",\"url3d\":\"\"},{\"fid\":\"3\",\"floor\":\"1705\",\"url3d\":\"\"}\]
[root@localhost ~]#
所有特殊符号前的\都是用来识别特殊符号的,否则在insert的时候会报错
记得在shell中插入数据的时候也需要单引号前加\
insert into floor (building_id,building_name,address,floor_info,floor_num,is_del) values(@projectid,'$building_name','$address',\'$floor_infos\',$floors_num,0);