前提・実現したいこと
Zabbix APIでシェルスクリプトでマップ及び要素の追加をしようと考えております。
hostID_listの中にhostIDを羅列していて
それを${HostID}に入れてループさせたいです。
該当のソースコード
#!/bin/bash ZabbixWeb=http://xxx.xxx.xxx.xxx/zabbix/ auth=`bash zabbix_token_get.sh` PRE_IFS=$IFS IFS=$'\n' curl -s -d ' { "jsonrpc": "2.0", "method": "map.create", "params": { "name": "HostHostMap", "width": 1400, "height": 1100, "iconmapid": 1, "label_type": 0, "label_location": 0, "highlight": 0, "selements": [ ---------------------ここから--------------------- { "elements": [ {"hostid": "'${HostID}'"} ], "elementtype": 0, "iconid_off": "2" } ---------------------ここまで--------------------- ] }, "auth": "'${auth}'", "id": 1 } ' -H "Content-Type: application/json-rpc" ${ZabbixWeb}api_jsonrpc.php echo ""
試したこと
上記のここから~ここまでの部分をループ処理すれば要素が複数作成できるのですが
下記のようにfor文を使ってもエラーとなります。
for line in $(cat /root/hostID_list) do HostID=’echo ${line}’ { "elements": [ {"hostid": "'${HostID}'"} ], "elementtype": 0, "iconid_off": "2" } done