GNU/Linux >> Znalost Linux >  >> Linux

Proč používat echo před instalací nového softwaru?

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.


Linux
  1. Jak používat příkaz showmount k zobrazení seznamu sdílených položek na serveru NFS

  2. echo:příkaz nenalezen

  3. Proč nebyl příkaz sudo:bundle nalezen?

  1. Jak používat Su Command v Linuxu

  2. Linuxový příkaz echo

  3. Mohu použít příkaz (například strom), aniž bych jej instaloval v celém systému?

  1. Proč je nastavení proměnné před příkazem v Bash legální?

  2. Linux ls Command - Seznam souborů

  3. Příklady příkazů echo v Linuxu