Можно сделать так:
#!/bin/bash
declare -A site=() theme=()
add_site() {
local shortcut=$1
site[$shortcut]=$2
theme[$shortcut]=$3
}
while IFS= read -r line; do
case "$line" in
shortcut=*)
# IFS== read -r __ shortcut <<< "$line"
_shortcut=${line#*=}
;;
site=*)
# IFS== read -r __ site <<< "$line"
_site=${line#*=}
;;
theme=*)
# IFS== read -r __ theme <<< "$line"
_theme=${line#*=}
add_site "$_shortcut" "$_site" "$_theme"
;;
esac
done < file.ini
Вывод теста с добавлением эхо "$@"
на функции:
x1 example1.com alpha
x2 example2.com beta
Сканкоды для USB-клавиатур: не то, что вы ожидали, это не результат showkey -s
. Вместо этого вам придется использовать evtest
, чтобы получить нужные вам скан-коды.
Пример вывода evtest
:
Event: time 1399420905.069693, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70004
Event: time 1399420905.069693, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1399420905.069693, -------------- SYN_REPORT ------------
Вам нужно значение после MSC_SCAN
, в этом случае оно сообщает нам, что кнопка сопоставлена с клавишей A ( KEY_A
) имеет скан-код 70004
.