Sto imparando shell da tutorialspoint oggi: link
E ho copiato questo blocco di codice in un file loop.sh :
#!/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
Ma quando lo salvo, ho cose come:
...
-n 4
-n 3
-n 2
-n 1
-n 0
...
A quanto pare, il flag -n non funziona in echo -n "$b " .
Quindi sposto lo stesso file sul mio sistema virtuale Ubuntu. Lo esegue.
Ho ricevuto:
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
Sono confuso, anche se Ubuntu usa dash come predefinita sh , ma OSX usa bourne shell ufficiale come sh , perché lo script ha fallito qui? Come risolverlo?