Chociaż jest to uczciwe pierwsze przybliżenie, kiedy zaczynasz uczyć się samych podstaw korzystania z powłok, na poziomie „tutaj jest sposób uruchamiania programu” i „tutaj jest to, jak uruchamia się wiele programów jeden po drugim w jednym wierszu” , to nie jest tak naprawdę prawda.
Trudniejsze do zrozumienia dla początkującego, ale bardziej poprawne jest to, że językiem powłoki jest język komputerowy . Ma składnię . Ta składnia obejmuje różne elementy leksykalne, w tym (między innymi) znaki nowej linii, operatory, słowa i słowa zastrzeżone.
if, then, else, I fisą zarezerwowane słowa . Mają one szczególne znaczenie podczas analizowania danych wejściowych przekazywanych powłoce, zgodnie z jej gramatyką . Podobnie ;jest operatorem separatora .
Dane wejściowe w języku powłoki są zatem, jako całość, programem komputerowym interpretowanym przez inny program, tłumacza , powłokę. Poszczególne części gramatyczne nie są programami. Język powłoki to sposób określania (innych) programów do uruchomienia powłoki.
[nie jest specjalnym elementem leksykalnym w gramatyce powłoki, takim jak operator. Jest to zwykłe słowo , które nazywa jeden taki program o nazwie [. Wiele powłok ma wbudowaną wersję tego programu, połączoną z kodem samego programu powłoki, ale można także znaleźć program zewnętrzny o tej nazwie, np. /bin/[Lub /usr/bin/[, który programy inne niż powłoki mogą wywoływać. Podobnie, ]nie jest też specjalnym elementem leksykalnym powłoki. To zwykłe słowo, które staje się argumentem dla [programu. [Program wymaga, że jej ostatni argument, gdy jest ona wykonywana, bądź ], który następnie przechodzi do zignorowania.
Innym podobnym programem wymienionym w twoim pytaniu jest echo. Ponownie, większość powłok ma wbudowaną wersję tego programu. Ale znowu jest też zewnętrzna wersja programu, taka jak /bin/echolub /usr/bin/echo, do wywoływania programów innych niż powłoki.
Trzeci program wymieniony w twoim pytaniu to ls. Powłoki na ogół nie mają wbudowanych wersji tego programu i jest to program zewnętrzny, który można znaleźć gdzieś np. /bin/lsLub /usr/bin/ls.
Więcej informacji na temat powłoki Bourne Again można znaleźć w Podstawowych funkcjach powłoki dokumentacji GNU Bourne Again. Inne skorupy mają naturalnie inną gramatykę. Specyfikacja Single Unix opisuje składnię, do której powinny stosować się wszystkie powłoki zgodne z POSIX (w ich trybach zgodnych z POSIX).
Dalsza lektura
- „ Gramatyka powłoki ”. Język poleceń powłoki . Podstawowe specyfikacje Wydanie 7. Grupa otwarta. IEEE 1003.1-2008. ISBN 1937218812.
test. Użytkowe . Podstawowe specyfikacje Wydanie 7. Grupa otwarta. IEEE 1003.1-2008. ISBN 1937218812.
- „ Gramatyka powłoki ”. Podręcznik Z Shell . wersja 5.3.1. 2017 r.