Проблема с PATH при добавлении postgresql в .bash_profile

if  [ ... ];
    echo "in downtime, exit";
    then exit
fi

Как упоминается в других ответах, ключевое слово then находится не в том месте в этом if условии. (С точки зрения языка оболочки это не отсутствует. Если бы это было так, это было бы синтаксической ошибкой.)

Здесь происходит то, что обе команды перед , затем принимаются как часть условия, а возвращаемое значение всего лота используется для выбора того, выполняется ли часть после , а затем . Если команды разделены точкой с запятой, имеет значение только статус выхода последней команды.

Поскольку echo, вероятно, всегда будет успешным, условная ветвь выполняется всегда. Что-то вроде , если правда; ложный; затем повторите что-нибудь; Однако fi никогда не запустит echo.Я бы предложил поместить ключевое слово then в ту же строку, что и условие, чтобы случайно не добавить что-то между ними.

С if использование нескольких команд в условии, скорее всего, просто сбивает с толку, но с while это может иметь свое применение: у нас может быть что-то вроде этого:

while value=$(somecommand) ; [ "$value" != 0 ] ; do
    echo "do some work with $value"
done

И назначение, и тест выполняются на каждой итерации цикла.

0
01.09.2017, 00:24
2 ответа
export PATH="/my/path/bin:$PATH"
0
28.01.2020, 02:19

Разница между

PATH="/some/new/bin"         # wrong (in your case)

и

PATH="$PATH:/some/new/bin"   # correct (in your case)

заключается в том, что первый заменяетзначение переменной PATH, а второй добавляет к значение той же переменной.

Строка в вашем файле должна была гласить

export PATH="$PATH:/Applications/Postgres.app/Contents/Versions/9.6/bin"

Обратите внимание, что $PATHдолжен быть :-разделенный список каталогов. Имена отдельных двоичных файлов здесь перечислять не должны, только имена (пути) каталогов, где оболочка должна их искать.

Обычно не нужно экспортироватьPATH, так как он уже экспортирован.


Если значение, которое вы добавляете к PATH, является правильнымили нет, я не знаю.

5
28.01.2020, 02:19

Теги

Похожие вопросы