URL: https://linuxfr.org/forums/programmation-shell/posts/bash-ksh-posix-et-compatibilite Title: Bash, ksh, POSIX et compatibilité Authors: Marotte ⛧ Date: 2016年07月11日T19:06:41+02:00 License: CC By-SA Tags: bash, shell, ksh et posix Score: 4 Bonjour, J’étais en train d’écrire un script pour AIX en Korn shell et étant donné que c’est un script très simple je me suis dit : « tiens mais pourquoi pas rendre mon script compatible également Linux ? » et là je tombe sur un os... :/ Même avec un shell compatible POSIX de chaque côté (```#!/usr/bin/env sh```), je me rends compte que la commande _echo_ ne fonctionne pas de la même manière sur AIX et Linux :( Sous AIX les caractères tels que \n, \t, etc... sont bien interprétés. Sous Linux il faut pour ça utiliser l’option _-e_ de _echo_, option qui n’existe pas sous AIX (ce serait trop simple). Je subodore qu’il faut utiliser _printf_ plutôt que _echo_ mais avec _printf_ je ne peux pas, à ma connaissance, faire ce genre de truc : ```sh export HELP="\n\ ### check_files.sh #####################################################################\n\ # #\n\ # Checks if presence of files in a directory on AIX. #\n\ # #\n\ # Arguments : #\n\ # #\n\ # -d Directory to search files in. #\n\ # -a Search files older than this parameter, in minutes. #\n\ # -s Size of each file must be superior to this value, in bytes #\n\ # -n Maximum number of files #\n\ # -h Show this help. #\n\ # #\n\ ########################################################################################\n\ \n"; ``` Si j’ai le code ci-dessus, pour que l’affichage soit correct sous AIX il faut faire ```echo "$HELP"``` alors que sous Linux je devrais faire ```echo -e "$HELP"```. Si je mets l’option _-e_ sous AIX ça va m’afficher ce '-e' dans la sortie. Est-ce que vous voyez une solution à laquelle je n’aurais pas pensé ?

AltStyle によって変換されたページ (->オリジナル) /