Štandardne sa shell správa tak, že spracúva sekvenčne všetky riadky shellovského skriptu. Rovnako, oddelenie príkazov bodkočiarkou zaručuje sekvenčné (sériové) spracovanie. Čo ale ak máme napr. štvorjadrový procesor a chceme, aby sa shellovský skript vykonával súčasne na všetkých štyroch jadrách - multithreading? Poďme sa na to mrknúť.
Existuje jednoduchý spôsob, ako urobiť paralelné procesy po unixom. Stačí použiť „fintu“ spustenia programov na pozadí talk, že za existujúcim príkazom napíšeme ampresand &. Ak takto spustíte príkazy, shell nečaká, kým sa príkaz na pozadí ukončí, máte výhodu paralelného spracovania.
Ako odsledujem, či mi skončili všetky príkazy, ktoré som spustil na pozadí? Po spustení príkazu na pozadí je treba uchovať obsah premennej $!, do ktorej shell automaticky zaznamenáva PID (Process ID) posledného skriptu, ktorý bol spustený na pozadí v tejto inštancii shellu. Ak mám takýchto procesov viac, je možné všetky postupne uchovať do shellovského poľa.
Stačí na to jednoduchá slučka until, do ktorej uvedieme, že bude skript „spať“ až dovtedy, kým sa neukončia všetky procesy zo shellovského poľa.