Если вы не добавите слово local
к переменной, оно останется, пока вы не выполните одно из следующих действий:
- Откройте новое окно терминала.
- Запустите
exec zsh
или exec bash
в зависимости от вашей оболочки. Это просто очищает ваши локальные переменные, которым не было присвоено слово local
.
Избегайте этого
method_name(){
a=11
echo $a
}
Правильный пример
method_name(){
local a=11
echo $a
}
Эта переменная привязана к имени функции method_name
и доступна только внутри функции при вызове (а не после).
Если вам нужен прямой доступ к этой локальной переменной, вы можете установить ее таким образом
local z=11
И назовите это так
echo $z
Кроме того, переменные среды отличаются от локальных переменных.
В зависимости от вашей оболочки и потребностей вы можете использовать .bash_profile
или .bashrc
или .zshrc
и т. д. для хранения функций и псевдонимов.
Посмотрите этот справочник, чтобы узнать больше о переменных среды и соответствующих оболочках
Также прочтите это, чтобы понять, как устанавливать переменные среды в командной строке с помощью расширений оболочки
Вы можете быстро просмотреть переменные среды с помощью env
или printenv
Соглашение состоит в том, чтобы использовать ПРОПИСНЫЕ РЕГИСТРЫ
Чтобы временно установить переменную среды (сохраняется до тех пор, пока вы не закроете терминал)
export A=11
or export B="11 is part of this string"
Предполагая, что вы открыли новое окно терминала или получили исходный файл .zshrc или .bashrc или что бы вы ни использовали, теперь вы можете использовать эту переменную среды, пока не закроете сеанс терминала. Примечание: не используйте $ при настройке, но используйте $ при ссылке на переменную.
Примеры
echo "A is equal to: $A and that is pretty nice"
echo "$A"
Как получить файл
source ~/path/to/file/filename
Пример
source ~/.bash_profile
Чтобы установить переменную среды (пока вы не удалите ее или не установите снова)
Используйте приведенный выше код, но поместите его в свой ~/.bash_profile или ~/.zshrc или другой соответствующий файл. Сохраните файл и укажите источник.
Пример
export B="11 is part of this string"
Теперь вы можете просмотреть его с помощью
env
Чтобы удалить эту переменную среды, удалите ее из файла и снова создайте файл.
Чтобы временно удалить переменную окружения, используйте unset
Пример
unset B
Обратите внимание, что при снятии с охраны нет $
.
Чтобы установить переменные среды из командной строки
export BLABLA="environment variable set from the command line, saved in file for later use"
Проверьте файл, в который вы его отправляете, он может не начинаться с новой строки, возможно, он был объединен с вашей последней строкой, которая была какой-то другой функцией, псевдонимом или другим.
Это не полностью исчерпывающий ответ, но это большой шаг в правильном направлении. Он показывает, как область в терминальной оболочке может быть установлена, использована и удалена.
person
jasonleonhard
schedule
07.02.2017