Mac OS X et shell bourne:bourne shell ne casse mot inattendu
J'aime parcourir une liste d'éléments, pour lesquels certains des éléments incluant des blancs. Chaque article doit être traité dans son ensemble, mais il doit être divisé comme indiqué ci-dessous. Si je "coder en dur" comme ça, il est ok:
echo "hard coded :\n"
for i in 'a a a' 'bcd' 'e e'
do
echo "$i"
done
Mais mettre la même chaîne dans une variable, il est faux:
echo "\nsecond loop:\n"
#
# str is normally coming from a comma substitution
str="'a a a' 'bcd' 'e e'"
echo $str
for i in ${str}
do
echo "$i"
done
Le résultat est:
hard coded :
a a a
bcd
e e
secondes boucle:
'a a a' 'bcd' 'e e'
'a
a
a'
'bcd'
'e
e'
Vous utilisez 'bash', pas le shell Bourne. – chepner
qu'est-ce que vous obtenez lorsque vous tapez 'echo $ SHELL'? Bonne chance. – shellter
MacOS n'a pas de shell Bourne disponible.(Pour être clair, '/ bin/sh' sur les systèmes modernes est POSIX sh, ou un shell POSIX-superset tel que bash ou ksh, pas Bourne). –