304 votes

Bash correcte et shell script capitalisation variable

J'ai couru à travers de nombreux scripts shell avec des variables en majuscules, et j'ai toujours pensé qu'il y a un grave malentendu. Ma compréhension est que, par convention (et peut-être par nécessité, il y a longtemps), les variables d'environnement sont en majuscules.

Mais en moderne environnements de script comme Bash, j'ai toujours préféré la convention de bas-de-casse variables pour les variables temporaires, et le haut-cas des variables uniquement pour l'exportation (c'est à dire de l'environnement) des variables. Par exemple:

#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"

Qui a toujours été ma façon de voir les choses. Existe-il des sources faisant autorité qui soit d'accord ou pas d'accord avec cette approche, ou est-ce uniquement une question de style?

394voto

lhunath Points 27045

Par convention, les variables d'environnement (PAGER, ÉDITEUR,...) et internes variables shell (SHELL, BASH_VERSION, ..) sont capitalisés. Tous les autres noms de variables doivent être en minuscules.

Rappelez-vous que les noms de variables sont sensibles à la casse; cette convention évite accidentellement primordial de l'environnement et des variables internes.

Le maintien à cette convention, vous pouvez être assuré que vous n'avez pas besoin de connaître tous les variable d'environnement utilisée par les outils UNIX ou des coquilles afin d'éviter de les écraser. Si c'est votre variable, en minuscules. Si vous les exporter, en majuscules.

6voto

Draemon Points 15448

Je fais ce que tu fais. Je doute, il y a une source faisant autorité, mais il semble un assez répandu norme de facto.

2voto

Pierre-Luc Simard Points 2233

La façon dont je l'ai toujours regardé, c'est, si l'Bash les variables d'environnement sont tous en majuscules, je devrais l'exportation de la mine de le dire pour qu'il continue uniforme. Le Manuel de Bash ne veut pas dire que toutes les variables d'environnement doivent être en majuscules, mais la grande majorité des variables d'environnement construit en bash sont tous en majuscules (à la seule exception que je connaisse est $histchars).

0voto

Alnitak Points 143355

C’est juste une convention très largement répandue, je doute qu’il y n’importe quelle source « autoritaire » pour elle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X