Vím, že skripty shellu pouze spouštějí příkazy, jako by byly spouštěny v příkazovém řádku. Chtěl bych mít možnost spouštět skripty shellu, jako by to byly funkce... To znamená, že do skriptu převezmete vstupní hodnotu nebo řetězec. Jak k tomu přistoupím?
Přijatá odpověď:
 Příkaz shell a všechny argumenty tohoto příkazu se zobrazí jako číslované proměnné shellu:$0 má hodnotu řetězce samotného příkazu, něco jako script , ./script , /home/user/bin/script nebo cokoli jiného. Všechny argumenty se zobrazí jako "$1" , "$2" , "$3" a tak dále. Počet argumentů je v proměnné shellu "$#" .
 Běžné způsoby, jak se s tím vypořádat, zahrnují příkazy shellu getopts a shift . getopts je hodně podobný C getopt() funkce knihovny. shift přesune hodnotu $2 na $1 , $3 na $2 , a tak dále; $# se sníží. Kód se nakonec podívá na hodnotu "$1" , dělá věci pomocí case …esac rozhodnout o akci a poté provést shift přesunout $1 na další argument. Vždy musí prozkoumat pouze $1 a možná $# .