#!/bin/bash
if [[ $# -eq 0 || $1 == "-h" || $1 == "--help" ]];
then
echo "Uzycie: $0 [-h] plik..."
echo "Zamienia w nazwach podanych plikaow duze litery na male (np. Plik.TXT na plik.txt)."
echo "Opcja -h wyswietla pomoc."
exit 1
fi
for plik in $*
do
if [ -e $plik ];
then
nowy_plik=$(echo $plik | tr '[A-Z]' '[a-z]')
if [ $plik != $nowy_plik ];
then
echo "Zamieniam: $plik na $nowy_plik"
mv $plik $nowy_plik
fi
else
echo "Blad: $plik - nie ma takiego pliku"
fi
done
Powłoka Bash umożliwia także użycie pętli for znanej z języka C.
for (( wyrażenie1 ; warunek ; wyrażenie2 ))
do
instrukcje
done
Wszystkie instrukcje są wykonywane dopóki warunek jest spełniony.
Początkowe wyrażenie1 jest uruchomione tylko raz przed rozpoczęciem pętli, zazwyczaj służy do zainicjowania zmiennych.
Końcowe wyrażenie2 jest wykonywane na końcu każdej iteracji, zazwyczaj używane jest do zwiększenia (lub zmniejszenia) pewnego licznika.
Przykład - skrypt wyznaczający silnię:
#!/bin/bash if [[ $# -eq 0 || $1 == "-h" || $1 == "--help" ]]; then echo "Uzycie: $0 [-h] liczba" echo "Oblicza silnie podanej liczby." echo "Opcja -h wyswietla pomoc." exit 1 fi silnia=1; for (( i=2 ; i<=$1 ; i++ )) do let silnia=silnia*i; done echo "Silnia wynosi $silnia"Przykład - wielokrotne losowanie kostką:
#!/bin/bash if [[ $1 == "-h" || $1 == "--help" ]]; then echo "Rzut kostka" echo "Uzycie: $0 [-h] liczba" echo "Wyswietla wynik rzutu kostka powtorzenoge zadana liczbe razy." echo "Opcja -h wyswietla pomoc." exit 1 fi ile=1 if [ $# -gt 0 ]; then ile=$1 ;fi for (( i=1 ; i<=ile ; i++ )) do wynik=$(($RANDOM%6+1)) echo $wynik done