Первая ошибка - это не всегда корректное выполнение команды mv для перемещения файла в уже существующий каталог,
если последний не задан явно в коде команды при помощи слеша в конце.
Команда была записана так:
mv /usr/share/applications/${TREE1} /usr/local/pmenu/removed
Здесь /usr/local/pmenu/removed,(являясь катологом) иногда, случайным образом, считывается интерпретатором bash как файл.
Происходит не перемещение файла /usr/share/applications/${TREE1} в каталог /usr/local/pmenu/removed, а операция переименования
с перемещением. Файл /usr/share/applications/${TREE1} становится файлом /usr/local/pmenu/removed, а каталог /usr/local/pmenu/removed становится
каталогом /usr/share/applications/removed.
Если команда записана так:
mv /usr/share/applications/${TREE1} /usr/local/pmenu/removed/
-то она выполняется корректно.
Вторая ошибка возникала если переменная ${TREE2} принимала значение "пустая строка".
(Это если щелкнуть в пустом окошке "Удалённые пункты меню")
В строке:
mv /usr/local/pmenu/removed/${TREE2} /usr/share/applications
получается ошибка, которая подобна по действию вышеизложенной.