我想解析yaml到Json。 我想設置具有字符串索引的數組。爲什麼我得到一個錯誤「無效的算術運算符」?
當I V試了一下我得到一個錯誤
這裏是我的源和錯誤
keys=$(echo $ci_json | jq 'keys')
key_array=($keys)
ARR=()
for raw_key in ${key_array[@]}; do
if [ $raw_key = '[' -o $raw_key = ']' ]; then
continue;
else
key=$(echo $raw_key | sed -e 's/"//g' -e 's/,//g')
value=$(echo $ci_json | jq .$key)$'\t'
ARR[$key]=$value
fi
done
錯誤:的localhost.localdomain:語法錯誤:無效的算術運算符(錯誤標記爲 「.localdomain」 )
這個錯誤出現在 「ARR [$關鍵] = $值」
任何人可以幫助我嗎?
這是馬密鑰列表:
APP_TYPE APP_USE ASSETS_NO ASSETS_STAT ASSETS_TYPE BIZ_GROUP BIZ_L1 BIZ_L2 CI_COMMENT CI_NO CI_OWNER CI_PARENT CPU_CLOCK CPU_CORE CPU_MODEL CPU_NUM CPU_VENDOR DB_ADMIN1 DB_ADMIN2 DEV_ADMIN DEV_ADMIN2 DISUSE_DATE ENTER_DATE EXPIRE_DATE HDD_MODEL HDD_NUM HDD_TYPE HDD_VENDOR HDD_VOL HOLE_NO HOSTNAME IDC INTO_DATE MAINT_CORP MAINT_DATE MEM_MODEL MEM_NUM MEM_VENDOR MEM_VOL MODEL NIC1_IP NIC1_MAC NIC1_PORT NIC1_SW NIC2_IP NIC2_MAC NIC2_PORT NIC2_SW NIC_MODEL NIC_VENDOR OOB_IP OOB_MAC OOB_PORT OOB_SW OS_ARCH OS_KERNEL OS_NAME 門市 RACK_NO RAID_CACHE RAID_FIRM RAID_MODEL RAID_NO RAID_VENDOR 表示 SC_ADMIN SC_CATEGORY SC_DEPT SC_TYPE SEND_DATE SERIAL_NO 將server_class SIM SPEC_CODE SVC_GROUP SVC_L1 SVC_L2 SYS_ADMIN SYS_ADMIN2 UNIT USE_DESC 賣方 VM_CLASS VM_TYPE assignType
究竟是什麼你想怎麼辦?你提到解析YAML來生成等價的JSON,但是你使用'jq'來解析輸入。你的輸入是什麼樣的,什麼是預期的輸出? ''bash'實際上觸及了任何數據,越有可能您的代碼在有效輸入中不會中斷。 – chepner
我想要做的是發送協議,並獲取YAML數據,然後將YAML更改爲JSON因爲我認爲JSON比YAML更容易解析。這就是爲什麼我使用jq。我可以將YAML更改爲JSON,並且我想要設置具有字符串索引並具有JSON數據的數組。我希望我可以像「ARR [$ key] = $ value」那樣設置數組,但是當我嘗試它時,會發生錯誤。對不起馬英文.. –