Это общая процедура, которую вы можете использовать практически для любой оболочки. В любом случае, вы должны знать, в какую оболочку пользователь обычно входит:
path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"
Затем вы должны выяснить, какие точечные файлы обычно читает эта оболочка:
man $shell
Сокращение, которое могло бы работать, должно перечислить те точечные файлы, которые содержат имя оболочки:
ls ~/.*${shell}*
Если вы хотите проверить, действительно ли один из файлов читается во время входа в систему, вы можете просто напечатать имя файла в каждом из них, например:
echo .bashrc
При входе в систему вы должны увидеть, какие файлы читаются, и вы можете решить, какие из них изменить. Помните, что вы не должны пытаться использовать echo "$0"
или подобное, потому что значение $0
зависит от того, как оболочка обрабатывает точечные файлы, и может вводить в заблуждение.
Когда дело доходит до объявления переменной «постоянно», обратите внимание, что это распространяется только на сеанс. Нет доступа к значению переменной без сеанса, поэтому он не имеет смысла вне одного. Если вы имеете в виду «только для чтения», это зависит от оболочки, и в Bash вы можете использовать:
declare -r VAR
если оно уже имеет значение, или
declare -r VAR=value
назначить его одновременно. Не все оболочки имеют эту функцию.
Чтобы объявить переменную в большинстве оболочек, вы должны использовать имя переменной ( [A-Za-z_][A-Za-z0-9_]*
), за которым следует знак равенства ( без пробелов вокруг знака равенства), а затем значение (желательно заключенное в кавычки, если значение не является простым [A-Za-z0-9_]+
). Например:
name="John Doe"
ip=127.0.0.1
HORRIBLE=1