Paketverwaltung und Software-Repositorys
Debian-basierte Linux-Distributionen verlassen sich auf Repositorys (Datenbanken mit Anwendungsinstallationspaketen und Aktualisierungspaketen), um die Betriebssysteme auf dem neuesten Stand zu halten und neue Softwarepakete einfach abzurufen und zu installieren. Der Speicherort dieser Repositorys wird gespeichert /etc/apt/sources.list, es können jedoch zusätzliche Quellen, die normalerweise nur für bestimmte Anwendungen gelten, im /etc/apt/sources.list.dVerzeichnis gespeichert werden .
Wenn der Befehl zum Aktualisieren des Paketindex apt-get updateausgeführt wird, sucht Ihr Betriebssystem in diesen Paket-Repositorys nach verfügbaren Paketen und registriert die verfügbaren Softwares als verfügbar für Ihr Betriebssystem, das Sie mit dem herkömmlichen apt-get install <package>Befehl installieren können .
Ein Beispiel für eine dieser Softwarequellen ist:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
Es ist wichtig, dass diese Quellen auf bestimmte Versionen von Linux-Distributionen verweisen. Ein vertrauenswürdiges Beispiel ist der Codename für Ubuntu 14.04. Sie können Ihr Betriebssystem (debian-basiert) nach vollständigen Details abfragen, mit lsb_release -aoder lsb_release -scwas Kurz- und Codenamen bedeutet .
In Ihrer Frage, der Teil $(lsb_release -sc)interpretiert und das Ergebnis von Ihrem Betriebssystem gedruckt in die benutzerdefinierten Quelldatei ros-latest.list , die der Befehl bei der Ausführung schaffen.
Befehlssprachen-Interpreter
Der shBefehl ist die Borowski-Shell . Dies ist eine von mehreren Shells, wird jedoch als der alte Standard angesehen, und im Allgemeinen kann man sicher sein, dass es einen gibt. Es ist auch üblich, bashin vielen Shell-Skripten zu sehen. Diese Deklaration gibt die zu verwendende Shell an, da unterschiedliche Shells unterschiedliche Syntax verwenden.
In Bezug auf die -cFlagge zitiert man bash:
Wenn die Option -c vorhanden ist, werden Befehle aus der Zeichenfolge gelesen. Befinden sich nach der Zeichenfolge Argumente, werden diese den Positionsparametern zugewiesen, beginnend mit $ 0.
Alles in der ''Datei wird als Zeichenfolge gelesen. Sie müssen also nicht herausfinden, wie Sie verschiedenen Anführungszeichen entgehen können, oder sich Sorgen machen, dass die Shell etwas falsch interpretiert.
tl; dr
Der Befehl wird deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) mainin eine benutzerdefinierte Quelldatei gedruckt und $(lsb_release -sc)durch den interpretierten Wert ersetzt.