Pages : 1
#1 Le 18/01/2011, à 04:14
- ehmicky
Bug de Bash ?
Salut à tous,
Je crois que je viens de tomber sur un bug de Bash :
#!/bin/bash
b=( "un" "deux" )
printf "${b[*]}"
echo
printf "${b[@]}"
echo
a="${b[@]}"
printf "$a"
echo
echo "${b[@]}"
$ ./sc.sh
un deux trois
un
un deux trois
un deux trois
printf semble avoir du mal à parser "[@]" et renvoie "$b" et pas "${b[@]}". Qu'en pensez-vous ?
(1 heure pour trouver le problème !)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#2 Le 18/01/2011, à 05:15
- chopinhauer
Re : Bug de Bash ?
Toutes les substitutions sont faite par bash avant l'exécution des commande, ainsi le deuxième appel à printf est :
'printf' 'un' 'deux'
(je précise les limites des mots). Le format étant 'un', printf imprime 'un'.
L'option 'set -ex' est ton amie.
Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.
Hors ligne
#3 Le 18/01/2011, à 06:55
- ehmicky
Re : Bug de Bash ?
Oops effectivement !
Merci chopinhauer !
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
Pages : 1