Mam następujący prosty skrypt:
#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {1..99..2}
do
echo $i
done
Dane wyjściowe w przypadku, gdy działam z sh file.sh:
Bash version ...
{1..99..2}
Dane wyjściowe w przypadku, gdy działam z bash file.sh:
Bash version 4.2.25(1)-release...
1
3
5
.
.
.
99
Mam dwa zapytania:
Jeśli napisałem linię shabang określającą powłokę, czy nie powinna ona działać z bash, czy używam,
sh file.shczybash file.sh?Rozumiem, że
$BASH_VERSIONsh nie rozpoznaje, ale z czym jest problem dla pętli? Dlaczego nie drukuje liczb?
dash, Które, jak mówisz, zapewniashUbuntu, nie występuje głównie „jako powiadomienie alarmowe w przypadku okoliczności DIRE”, ale zamiast tego system może działać i uruchamiać się szybko . W ten sposób,dashjest dobrze nadaje się do zastosowania w nowoczesnym systemie operacyjnym, ale to, co jest dobrze nadaje się do to jako niskiego profilu, szybki powłoki dla skryptów - szczególnie, uruchamianie skryptów systemu podczas uruchamiania duży, skomplikowany, nowoczesny OS, z minimalnym narzut wydajności.