Obvykle funkce echo
příkaz je zobrazení řetězce (části textu) na konzole. Ale tentokrát >
znak je přidán za echo
příkaz, přesměrování jeho výstupu do textového souboru /etc/apt/sources.list.d/ros-latest.list
.
Takže v podstatě celý tento příkaz zapíše kus textu do textového souboru. Nyní přichází ta záludná část:
Řetězec zapsaný do souboru se může pro každý počítač lišit. Část $(lsb_release -sc)
je vyřešen (změněn na něco jiného), když echo
příkaz se spustí.
Můžete otevřít /etc/apt/sources.list.d/ros-latest.list
v textovém editoru před a po příkazu, abyste sami viděli změnu. (Soubor nemusí existovat před tímto příkazem.)
Správa balíčků a úložiště softwaru
Distribuce Linuxu založené na Debianu spoléhají na repozitáře (databáze instalačních balíčků aplikací a aktualizačních balíčků), aby udržovaly operační systémy aktualizované a také snadno stahovaly a instalovaly nové softwarové balíčky. Umístění těchto úložišť je uloženo v /etc/apt/sources.list
, nicméně další zdroje, obvykle jedinečné pro konkrétní aplikace, mohou být uloženy v /etc/apt/sources.list.d
adresář.
Při příkazu aktualizace indexu balíčku apt-get update
je spuštěn, váš operační systém zkontroluje pomocí těchto úložišť balíčků dostupné balíčky a zaregistruje dostupný software jako dostupný pro váš operační systém, který můžete nainstalovat pomocí tradičního apt-get install <package>
příkaz.
Příkladem jednoho z těchto zdrojů softwaru je:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
Je důležité, aby tyto zdroje odkazovaly na konkrétní verze linuxových distribucí. Příkladem je důvěryhodný což je kódové označení pro Ubuntu 14.04. Úplné podrobnosti se můžete dotázat na svůj operační systém (založený na Debianu) pomocí lsb_release -a
nebo lsb_release -sc
což znamená krátký a kódové jméno .
Ve vaší otázce část $(lsb_release -sc)
je interpretován a výsledek z vašeho operačního systému je vytištěn do vlastního zdrojového souboru ros-latest.list který příkaz vytvoří po provedení.
Tlumočník příkazového jazyka
sh
příkaz je Bourne shell. Toto je jeden z několika shellů, ale je považován za starý standard a obecně si můžete být jisti, že existuje. Je také běžné vidět bash
v mnoha shellových skriptech. Tato deklarace specifikuje shell, který se má použít, protože různé shelly používají různou syntaxi.
Pokud jde o -c
příznak s citací man bash
:
Pokud je přítomna volba -c, příkazy se čtou z řetězce. Pokud jsou za řetězcem argumenty, jsou přiřazeny k pozičním parametrům počínaje $0.
Vše v rámci ''
se čte jako řetězec, nemusíte vymýšlet, jak uniknout různým uvozovkám nebo se obávat, že shell něco interpretuje špatně.
tl;dr
Příkaz vypíše deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main
na vlastní zdrojový soubor, nahrazující $(lsb_release -sc)
s interpretovanou hodnotou.