Можете ли вы использовать Sublime Text, например, многоплатформенную и высокую, рекомендованную профессиональными разработчиками, и создавать плагины очень легко.
Вот пример, который работает.
Как уже говорилось, расширение переменных из ввода является ключевым.
#!/bin/bash
echo -n "Dir:"
read dir1
dir2=`eval echo $dir1`
cd $dir2
pwd
Конечно, вы не должны ожидать, что ваш текущий оболочка изменит рабочий каталог после выполнения скрипта. Он останется без изменений.
Проблема в расширении тильды происходит до расширения переменной (подробнее см. man bash). Расширение переменной происходит только один раз, поэтому $dir1 расширяется, но строка $HOME внутри него отсутствует.
Может быть проще указать путь к каталогу в качестве аргумента командной строки вместо использования read, чтобы прочитать его с консоли: оболочка расширит его для вас:
#!/bin/bash
dir1=$1
cd "$dir1"
pwd
и вызовет его как
./script ~/Desktop
Другой альтернативой является использование диалогового окна файла вместо вводя путь вообще:
dialog --dselect / 20 20