Comparing two bash variables -
i trying write simple bash script shows difference between 2 variables, assumption both variables contain identical parameters different values. @ $sam
, $pish
variables. identical, except parameter driver_mode
1
in $sam
, , 2
in $pish
. comparison, store each variable separate array, , compare each element 1 one.
#!/bin/bash sam="driver_mode=2 firmware_path=/home/release/firmware/ onebox_zone_enabled=0x10001 ta_aggr=4 skip_fw_load=0 fw_load_mode=1 sdio_clock=40000 enable_antenna_diversity=0 coex_mode=1 obm_ant_sel_val=2 wlan_rf_power_mode=0 bt_rf_power_mode=0 zigb_rf_power_mode=0 country_code=840 bt_rf_tx_power_mode=1 bt_rf_rx_power_mode=0" pish="driver_mode=1 firmware_path=/home/release/firmware/ onebox_zone_enabled=0x10001 ta_aggr=4 skip_fw_load=0 fw_load_mode=1 sdio_clock=40000 enable_antenna_diversity=0 coex_mode=1 obm_ant_sel_val=2 wlan_rf_power_mode=0 bt_rf_power_mode=0 zigb_rf_power_mode=0 country_code=840 bt_rf_tx_power_mode=1 bt_rf_rx_power_mode=0" read -r -a array_old <<< "$sam" read -r -a array_new <<< "$pish" index in "${!array_old[@]}"; if [[ ${array_old[index]} -ne ${array_new[index]} ]]; echo ${array_old[index]} 'to' ${array_new[index]} fi done
running above bash script gives me error:
./test: line 12: firmware_path=/home/release/firmware/: syntax error: operand expected (error token "/home/release/firmware/")
the -ne
operator integer comparison operator. compare strings use !=
:
for index in "${!array_old[@]}"; if [[ ${array_old[index]} != "${array_new[index]}" ]]; echo ${array_old[index]} 'to' ${array_new[index]} fi done
Comments
Post a Comment