J'apprends le shell à partir de tutorialspoint aujourd'hui : http://www.tutorialspoint.com/unix/unix-shell-loops.htm
Et j'ai copié ce bloc de code dans un loop.sh
fichier :
#!/bin/sh
a=0
while [ "$a" -lt 10 ] # this is loop1
do
b="$a"
while [ "$b" -ge 0 ] # this is loop2
do
echo -n "$b "
b=`expr $b - 1`
done
echo
a=`expr $a + 1`
done
Mais en l'excutant, j'ai obtenu des choses comme :
...
-n 4
-n 3
-n 2
-n 1
-n 0
...
Apparemment, le -n
ne fonctionne pas dans echo -n "$b "
.
Puis je déplace le même fichier vers mon système virtuel Ubuntu. Il s'exécute.
J'ai
0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0
Je suis confus, bien que Ubuntu utilise dash par défaut sh
mais l'utilisation d'OSX est officielle bourne shell
comme son sh
pourquoi le script a échoué ici ? Comment le réparer ?