Bonjour,
Comment rendre une variable présente dans une FONCTION visible en dehors de celle-ci ?
Notamment dans une structure de contrôle CASE.
J'espère avoir été clair dans mon explication.
Merci d'avance
Bonjour,
Comment rendre une variable présente dans une FONCTION visible en dehors de celle-ci ?
Notamment dans une structure de contrôle CASE.
J'espère avoir été clair dans mon explication.
Merci d'avance
Bonjour
Ce qui est déstabilisant avec bash, c'est que les variables ne sont pas locales à la fonction par défaut. Il faut utiliser le mot "local" en plus pour qu'elle deviennent locales.
Donc les variables dans une fonction sont déjà globales!
La question est donc "Qu'est-ce qui te fait penser que la variable n'est pas globale ?"
Car elle n'est pas reconnue ci-après avec ou sans accolade
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 case $# in 0) echo -e "# Alimenter les variables ci-dessous \n# contexte instance heure_debut heure_fin type_log date " >${contexte}/diff/tmp/log/list_file
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function F1 { # Declaration des variables contexte=$(echo $1 |tr [:lower:] [:upper:]) instance=$(echo $2 |tr [:lower:] [:upper:]) date_du_jour=$(echo $(date '+%Y/%m/%d') | sed 's/\//-/g') # Date du jour au format AAAA-MM-JJ
$# désigne le nombre d'arguments ? Si c'est 0, alors tu indiques les arguments qui doivent être présents ? Et tu les renvoies dans un fichier au chemin variable ?
Sauf que le chemin dépend du premier argument, et le premier argument est vide puisque il y en a 0. Donc le "contexte" n'est pas un mot en majuscule.
Ai-je bien compris ?
Sinon, je soutiens la demande d'informations complémentaires de N_BaH.
Partager