C'est une procédure générale que vous pouvez utiliser pour à peu près n'importe quel shell. Dans tous les cas, vous devez savoir à quel shell l'utilisateur se connectera normalement avec:
path="$(grep $USER /etc/passwd | cut -d ':' -f 7)"
shell="$(basename -- "$path")"
Ensuite, vous devez déterminer quels fichiers de points ce shell devrait normalement lire:
man $shell
Un raccourci qui pourrait fonctionner est de lister les fichiers contenant le nom du shell:
ls ~/.*${shell}*
Si vous voulez vérifier si l'un des fichiers est réellement lu lors de la connexion, vous pouvez simplement imprimer le nom du fichier dans chacun d'eux, par exemple:
echo .bashrc
Lors de la connexion, vous devriez alors voir quels fichiers sont en train d'être lus et décider lequel modifier. Attention, vous ne devriez pas essayer d’utiliser echo "$0"
ou d’autres choses semblables, car la valeur de $0
dépend de la façon dont le shell traite les fichiers point et pourrait être trompeuse.
Quand il s'agit de déclarer la variable "de manière permanente", notez que cela ne concerne que la session. Il n'y a aucun moyen d'accéder à la valeur d'une variable sans session, elle n'a donc aucune signification en dehors de celle-ci. Si vous voulez dire "en lecture seule", cela dépend du shell, et dans Bash, vous pouvez utiliser:
declare -r VAR
s'il a déjà une valeur, ou
declare -r VAR=value
l'assigner en même temps. Tous les obus ne possèdent pas cette fonctionnalité.
Pour déclarer une variable dans la plupart des shells, vous devez utiliser une variable name ( [A-Za-z_][A-Za-z0-9_]*
), suivie d'un signe égal (et d' aucun espace autour du signe égal), puis d'une valeur (de préférence entre guillemets, à moins que la valeur ne soit simple [A-Za-z0-9_]+
). Par exemple:
name="John Doe"
ip=127.0.0.1
HORRIBLE=1