URL: https://linuxfr.org/forums/programmation-shell/posts/questions-sur-les-fonctions Title: Questions sur les fonctions Authors: gzgtrhe Date: 2020年06月07日T22:51:33+02:00 License: CC By-SA Tags: Score: 2 Bonjour, J'ai écrit un script bash avec quelques fonctions et j'ai un petit problème. Comme son nom l'indique, la fonction end_script met fin à l'éxécution du script en expliquant l'origine (passée en variable) de l'erreur. ```bash end_script() { local args local exit_code local reason args="$#" exit_code="1ドル" reason="2ドル" [ "$args" = 2 ] \ && printf "%s\n" "Error : $reason" printf "%s\n\n" "End of the script." exit "$exit_code" } ``` J'ai ensuite une fonction qui teste si une variable est définie : ```bash is_empty() { local var var="1ドル" [ -z "$var" ] } ``` Le test se fait ensuite simplement avec : ```bash is_empty "$DIR_SRC" \ && end_script "1" "the user variable \"DIR_SRC\" is not set." ``` Et cela produit le résultat escompté. Je voudrais simplifier avec un truc dans ce genre : ```bash is_empty() { local var var="1ドル" [ -z "$var" ] \ && end_script "1" "the user variable $var is not set." } is_empty "$DIR_SRC" ``` Mais cela ne marche pas. Au lieu d'obtenir "the user variable $DIR_SRC is not set.", j'obtiens "the user variable is not set." Donc moins précis sur la cause de l'erreur. Auriez-vous une idée sur comment atteindre le résultat souhaité ?