[
— это команда, так что проблема в том, как вы пытаетесь использовать несколько условий. Вы хотите это:
if [ "$#" -eq 1 ] && [ -f "$1" ]; then
what's so special about the /usr/local folder.
В этом нет ничего особенного -это зависит от того, как установлена ваша PATH
переменная. И это зависит от настроек по умолчанию для вашей системы, которые, если их никто не модифицировал, зависят от настроек по умолчанию вашего дистрибутива. Так что
echo $PATH
и посмотрите, что в нем содержится. Если вы хотите настроить его так, чтобы он включал /usr/local/android-studio/bin/
, найдите файл запуска для вашей оболочки (, например. ~/.profile
для большинства оболочек ), и взгляните на него. Если он уже устанавливает путь, измените его, в противном случае добавьте что-то вроде
PATH=$PATH:/usr/local/android-studio/bin/
export PATH
Кстати, рекомендуемый способ для /usr/local
— зеркально отразить «главную» иерархию, то есть /usr/local/bin
, /usr/local/lib
и т. д. Так что, скорее всего, у вас уже есть/usr/local/bin
на вашем пути (только не /usr/local/android-studio/bin
.
А если надо что-то положить в свой подкаталог (как в /usr/local/android-studio/
), то симлинки делаешь из /usr/local/bin
и везде где нужно:
ln -s /usr/local/android-studio/bin/studio.sh /usr/local/bin/studio.sh
Также посмотрите man stow
, как это автоматизировать.