Программа для просмотра изображений sxiv использует скрипт для выполнения операций над изображениями.
Пытаюсь таким образом реализовать многоуровневое меню. Но получается, что работает только первый уровень — выполняются команды 1, 2, 3, а то, что в «submenu» уже не работает
Вопрос.
В оператор «case» обычно завёрнуто либо одно условие, либо список условий, из которых выбирается подходящее.
case $переменная in
"$условие" или "$условие" или "$условие" )
команда...
;;
"$условие" )
команда...
;;
esac
Возможно ли перечислять условия последовательно?
Т. е. в качестве условий могут быть горячие клавиши и нужно, чтобы команда была выполнена лишь при последовательном нажатии определённых клавиш, на манер Вим’а.
Был бы рад обнаружить возможность работать с этим оператором таким образом, но не нашёл ничего похожего, потому путь реализации вижу в использовании вложенных «кейсов».
Задумка такая:
#!/bin/sh
n_cmd() {
notify-send "Message"
}
submenu() {
case $1 in
a ) n_cmd
;;
b ) n_cmd
;;
c ) n_cmd
;;
esac
}
case $1 in
1 ) n_cmd
;;
2 ) submenu
;;
3 ) n_cmd
;;
esac
Да только не работает. В чём проблема и как правильно реализовать?