Я попытался заставить средство запуска Android Studio (studio.sh) использовать мою установленную вручную Java (а не общесистемную Java по умолчанию). Поскольку я уже объявил PATH и JAVA_HOME в своем файле .bashrc, я просто использовал этот файл в сценарии оболочки:
. /дом/foobar/.bashrc
но по какой-то причине $JAVA_HOME/bin/java по-прежнему не распознавался сценарием как исполняемый файл.
Я добавил логирование и обнаружил, что JAVA_HOME был расширен как ~/install/java..., т.е. оператор тильды не был расширен в домашний каталог.
Я немного поискал, но не смог найти причину, по которой он не был расширен. Является ли тильда особенностью Bash (скрипт использует #!/bin/sh, а Linux Mint использует тире, а не bash)? Тильда не работает в некоторых случаях?
Я заменил ~ на $HOME в своем объявлении .bashrc, и тогда это сработало, поэтому HOME известен во время выполнения.