Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Podshell

Výraz

$(command)

vede ke spuštění příkazu command a nahrazení výrazu standardním výstupem vzniklým tímto spuštěním. Například

> echo date
date
> echo $(date)
Wed Aug 23 09:44:24 CEST 2023

Na prvním řádku echo vypíše řetězec date. Na druhém řádku ovšem shell spustí program date a jeho výstup umístí jako argument echo, takže potom vlastně spouštíme

> echo Wed Aug 23 09:44:24 CEST 2023
Wed Aug 23 09:44:24 CEST 2023

Typické použití ve skriptech je přiřazení výsledku do proměnné

> TODAY=$(date +%A)
> echo Today is ${TODAY}
Today is Wednesday

Technicky shell spouští nový proces shellu, tzv. podshell, ve kterém příkaz spustí. V podshellu tak neexistují proměnné vytvořené v rodičovském shellu.1 Alternativní syntax je vložení command mezi zpětné apostrofy (`). Tuto syntax nedoporučuji a v textu ji používat nebudeme.


  1. Toto omezení lze různými způsoby obejít, například pomocí exportování proměnných. ↩