Возможно, ваш скрипт использует переменные окружения, которые устанавливаются при входе терминала в сеанс. Я не знаю, что такое KDE, но в Gnome вы можете установить флажок «Открыть с помощью терминала», чтобы убедиться, что программа запускается из нового сеанса терминала (в той же среде, что и из ~ / .bashrc). Я предлагаю добавить следующее в начало вашего скрипта, чтобы убедиться, что он вызывается:
echo "I've been called: $@" > i_was_invoked.txt
И затем, в другом месте вашего скрипта, вы должны поместить операторы printf / echo, чтобы определить, где он ошибся. Если вы сделаете это и опубликуете свой сценарий, возможно, вам удастся помочь вам в дальнейшем.