Це загальна процедура, яку ви можете використовувати майже для будь-якої оболонки. У будь-якому випадку, ви повинні знати, з якою оболонкою звичайно входитиме користувач:
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