PoisonBit per lavori che sta facendo a voluto fare dei test per decidere quale shell usare, a questo proposito ha fatto un test per verificarne le performance. Io ho modificato questo script aggiungendo ulteriori shell. Lo script è il seguente:
#!/bin/bash testdir=$HOME/test mkdir -p "$testdir" printf '#!/bin/dash --\n\n' > "$testdir/dash" printf '#!/bin/bash --\n\n' > "$testdir/bash" printf '#!/bin/ksh --\n\n' > "$testdir/ksh" printf '#!/bin/csh --\n\n' > "$testdir/csh" printf '#!/bin/zsh --\n\n' > "$testdir/zsh" chmod +x "$testdir"/* for i in 1 10 100 1000 10000 do for shell in 'bash' 'dash' 'ksh' 'csh' 'zsh' do result='' printf "$shell\t$i\t" result="$( (time for ((x=0; x < $i; x++)); do "$testdir/$shell"; done) 2>&1 | awk -F\ '/real/{print $2}' )" printf "$result\n" done printf -- '-------------------------\n' done
salviamo come test-shell.sh
$ chmod a+x test-shell.sh
lo lanciamo con:
$ ./test-shell.sh
come si può vedere dai risultati il più performante è dash, ma questo era prevedibile, quello che è interessante sono proprio le differenze in termini numerici tra di loro.
edmond@debianbox:~$ ./testshell.sh
bash 1 0m0.002s
dash 1 0m0.001s
ksh 1 0m0.002s
csh 1 0m0.004s
zsh 1 0m0.003s
————————-
bash 10 0m0.021s
dash 10 0m0.009s
ksh 10 0m0.019s
csh 10 0m0.039s
zsh 10 0m0.032s
————————-
bash 100 0m0.202s
dash 100 0m0.088s
ksh 100 0m0.181s
csh 100 0m0.380s
zsh 100 0m0.294s
————————-
bash 1000 0m1.900s
dash 1000 0m0.867s
ksh 1000 0m1.793s
csh 1000 0m3.759s
zsh 1000 0m3.078s
————————-
bash 10000 0m19.689s
dash 10000 0m8.577s
ksh 10000 0m17.453s
csh 10000 0m36.365s
zsh 10000 0m29.948s
il vincitore è Debian Almquist Shell (dash)
io metterei testdir=$HOME/test
ed aggiungerei un file dove poter controllare il benk
echo "$shell $i $result" >> $testdir/benk.txt
o uno sleep di 10 secondi alla fine del test
sulla mia macchina vince zsh
Ciao, post davvero molto interessante
ti volevo fare una domanda.
Come mai secondo te nelle distribuzioni in genere viene usato bash?
@ Lorenz
puoi trovare qualche risposta alla tua domanda qua:
https://it.wikipedia.org/wiki/Debian_Almquist_shell#cite_note-1
@ c.realkiller
in effetti $HOME/test risulta più corretto
sarebbe interessante capire come mai zsh è vincente sulla tua macchina…provo a fare altri test.
@edmond secondo me la velocità di esecuzione di un istruzione o uno script varia da macchina a macchiana.
@lorenz lo standard POSIX è una delle ragioni della scelta di default bash a sfavore della dash