Shell

Pętla for po plikach

#!/bin/bash
for n in ~/weekly/*.txt
do
   emacs ae $n
done
echo "Done."

albo krócej ze średnikiem jako separatorem

#!/bin/bash
for n in ~/weekly/*.txt; do ae $n; done; echo "Done."

Pętla for po liczbach naturalnych

#!/bin/bash
for i in $(seq 15)
do
   echo $i
done

Polecenie seq wchodzi w skład pakietu "shellutils" GNU. Jest on zwykle zainstalowany.

Inne pętle

Nawiasy kwadratowe w warunkach są synonimem polecenia test, zwracającego 0 lub 1 (prawda lub fałsz) w zależności od spełnienia warunku. Nawiasy te muszą być otoczone spacjami.

Instrukcja warunkowa

if [ $state="goal" ]
then
   echo 'Stan docelowy!'
else
   echo 'Szukamy dalej.'
fi

Czasem tylko jedna gałąź

if [ -n $ERROR ]
then
   'Jakiś błąd; koniec pracy.'
   exit
fi

Instrukcja wyboru

#!/bin/bash
case $(intel_cpu_test) in
   1) echo "Masz jakiś stary procesor?";;
   2) echo "Masz wbudowane SSE.";;
   3) echo "Masz wbudowane SSE2.";;
   4) echo "Masz wbudowane SSE3.";;
   *) echo "To chyba coś nowego?";;
esac

break i continue

Polecenie break powoduje wyjście z otaczającej petli; polecenie continue przechodzi do następnej iteracji.

cat

Polecenie cat, oprócz podstawowej funkcji konkatenacji plików, umie robić jeszcze trochę rzeczy.

cat -v plik.txt wyświetli zawartość pliku na ekranie, ale pokaże wszystkie niedrukowalne znaki używając notacji "^". Pomaga gdy programy nie chcą czytać tekstu twierdząc, że to binaria.


Unix was never designed to keep people from doing stupid things, because that policy would also keep them from doing clever things.
-- Doug Gwyn