• # Tu cherches les ennuis :)

    Posté par (site web personnel) . En réponse au message Bash, ksh, POSIX et compatibilité. Évalué à 7. Dernière modification le 12 juillet 2016 à 11:46.

    C'est beaucoup plus facile de faire comme ça:

    help_message()
    {
     cat <<EOF
    ### check_files.sh #####################################################################
    # #
    # Checks if presence of files in a directory on AIX. #
    # #
    # Arguments : #
    # #
    # -d <path> Directory to search files in. #
    # -a <int> Search files older than this parameter, in minutes. #
    # -s <int> Size of each file must be superior to this value, in bytes #
    # -n <int> Maximum number of files #
    # -h Show this help. #
    # #
    ########################################################################################
    EOF
    }
    export HELP="$(help_message)"

    À noter que les variables sont remplacées comme avec les "" – ce qui permet d'afficher les valeurs par défaut. À noter que tu peux en profiter pour gérer ton aide en utf-8 en utilisant iconv à la place de cat (avec iconv -c -f utf-8) ou faire plein d'autres choses avec sed ou awk par exemple, ou ton filtre préféré.

    L'affichage portable d'une chaîne quelconque se fait avec printf '%s' "${HELP}".

    PS: Sinon tu peux aussi planquer des fichiers après le exit de ton programme et les extraire en utilisant les sélecteurs awk '/DELIM1/,/DELIM2/' mais je trouve ça moins propre au niveau de l'organisation logicielle. Par contre pour afficher l'aide d'un Makefile, cette astuce est très appréciable.