User Tools

Site Tools


mgenay:technique:differencehyphenparenthesis

La différence fondamental entre {} et () en KSH est la façon dont les environnements sont dissociées. En effet, si on écrit '<tt>{ exit 0 }; echo ?</tt>', le script KSH n'affiche rien. Exit a fait se terminer l'exécution complete du ksh.

'<tt>( exit 0 ); echo $?</tt>' affiche bien “0”, car l'exécution de ce qui est entre parenthèses est indépendante du reste (bien qu'il s'agisse, techniquement, du même process ksh). Par contre, si un problème de syntaxe pure intervient (“do” sans “done” par exemple), c'est tout le KSH qui retourne en erreur

Un 3ème type d'exécution est d'utiliser la syntaxe '<tt>ksh -c “la commmande”</tt>', comme dans le cas d'un lancement avec timeout. Dans ce dernier cas, il s'agit d'une toute autre exécution de ksh, processus fils du ksh en cours, et dont l'échec pour une raison ou une autre n'empêchera pas l'exécution de se terminer.

mgenay/technique/differencehyphenparenthesis.txt · Last modified: by 127.0.0.1