Este es un procedimiento general que puede usar para casi cualquier shell. En cualquier caso, debe saber con qué shell normalmente iniciaría sesión el usuario:
path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"
Luego tiene que averiguar qué archivos de puntos leería normalmente este shell:
man $shell
Un atajo que podría funcionar es enumerar los archivos de puntos que contienen el nombre del shell:
ls ~/.*${shell}*
Si desea verificar si uno de los archivos se lee realmente durante el inicio de sesión, simplemente puede imprimir el nombre del archivo en cada uno de ellos, por ejemplo:
echo .bashrc
Al iniciar sesión, debe ver qué archivos se están leyendo y puede decidir cuál modificar. Tenga en cuenta que no debe intentar usar echo "$0"
o algo similar, porque el valor de $0
depende de cómo procese el shell los archivos de puntos, y podría ser engañoso.
Cuando se trata de declarar la variable "permanentemente", tenga en cuenta que esto solo se extiende a la sesión. No hay forma de acceder al valor de una variable sin una sesión, por lo que no tiene sentido fuera de una. Si quiere decir "solo lectura", eso depende del shell, y en Bash puede usar:
declare -r VAR
si ya tiene un valor, o
declare -r VAR=value
para asignarlo al mismo tiempo. No todos los proyectiles tienen esta característica.
Para declarar una variable en la mayoría de los shells, debe usar un nombre de variable ( [A-Za-z_][A-Za-z0-9_]*
), seguido de un signo igual (y sin espacios alrededor del signo igual), luego un valor (preferiblemente citado a menos que el valor sea simple [A-Za-z0-9_]+
). Por ejemplo:
name="John Doe"
ip=127.0.0.1
HORRIBLE=1