Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

mksh — Online w chmurze

Uruchom mksh w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie mksh, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


mksz, sh — Powłoka MirBSD Korn

STRESZCZENIE


mksz [-+abCefhiklmnprUuvXx] [-T [!]tty | -] [-+ o opcja] [-c ciąg | -s | filet
[argument ...]]
nazwa-wbudowana [argument ...]

OPIS


mksz to interpreter poleceń przeznaczony zarówno do użytku interaktywnego, jak i skryptów powłoki. Jego
język poleceń jest nadzbiorem języka powłoki sh(C) i jest w dużej mierze kompatybilny z
oryginalna skorupa Korna. Czasami ta strona podręcznika może zawierać porady dotyczące skryptów; podczas gdy to
czasami bierze pod uwagę przenośne skrypty powłoki lub różne standardy
informacje są przede wszystkim prezentowane mksz mieć na uwadze i jako takie należy je traktować.

Jestem an Android użytkownik, so co jest mksz?
mksz jest interpreterem powłoki/poleceń UNIX-a, podobnym do COMMAND.COM or CMD.EXE, który ma
już od jakiegoś czasu dołączono do projektu Android Open Source Project. Zasadniczo jest to program
który działa w terminalu (oknie konsoli), pobiera dane wejściowe od użytkownika i uruchamia polecenia lub skrypty,
o co mogą go również poprosić inne programy, nawet działające w tle. Jakikolwiek przywilej
wyskakujące okienka, które możesz napotkać, takie nie są mksz problemy, ale pytania zadane przez kogoś innego
programu, który z niego korzysta.

Wezwanie
Większość wbudowanych funkcji można wywołać bezpośrednio, na przykład jeśli łącze prowadzi od jego nazwy do
powłoka; nie wszystkie mają sens, zostały przetestowane lub w ogóle działają.

Opcje są następujące:

-c ciąg mksz wykona polecenie(a) zawarte w ciąg.

-i Interaktywna skorupa. Powłoka czytająca polecenia ze standardowego wejścia to
„interaktywny”, jeśli używana jest ta opcja lub jeśli występuje zarówno standardowe wejście, jak i błąd standardowy
są dołączone do tty(4). Interaktywna powłoka ma włączoną kontrolę zadań, ignoruje
sygnały SIGINT, SIGQUIT i SIGTERM oraz wyświetla monity przed odczytaniem wprowadzonych danych
(patrz parametry PS1 i PS2). Przetwarza również parametr ENV lub
mkshrc plik (patrz poniżej). W przypadku powłok nieinteraktywnych trackall opcja jest włączona
domyślnie (patrz zestaw polecenie poniżej).

-l Powłoka logowania. Jeśli zaczyna się od nazwy bazowej, od której wywoływana jest powłoka (tj. argv[0]).
'-' lub jeśli użyto tej opcji, przyjmuje się, że powłoka jest powłoką logowania; Widzieć
Uruchomienie pliki poniżej.

-p Uprzywilejowana powłoka. Powłoka jest „uprzywilejowana”, jeśli dotyczy to prawdziwego identyfikatora użytkownika lub grupy
nie pasuje do efektywnego identyfikatora użytkownika lub identyfikatora grupy (patrz getuid(2) i zwariować(2)).
Wyczyszczenie opcji uprzywilejowanej powoduje, że powłoka ustawia swój efektywny identyfikator użytkownika
(identyfikator grupy) na prawdziwy identyfikator użytkownika (identyfikator grupy). Dalsze implikacje zob Uruchomienie
pliki. Jeśli powłoka jest uprzywilejowana i ta flaga nie jest jawnie ustawiona, plik
Opcja „uprzywilejowana” jest automatycznie czyszczona po przetworzeniu plików startowych.

-r Ograniczona skorupa. Powłoka jest „ograniczona”, jeśli używana jest ta opcja. Następujące
ograniczenia wchodzą w życie po przetworzeniu przez powłokę dowolnego profilu i ENV
plików:

· Połączenia cd (I chdir) polecenie jest wyłączone.
· Nie można zmieniać parametrów SHELL, ENV i PATH.
· Nazw poleceń nie można podawać ze ścieżkami bezwzględnymi ani względnymi.
· Połączenia -p opcja wbudowanego polecenia komenda nie można używać.
· Nie można używać przekierowań tworzących pliki (np. '>', '>|', '>>', '<>').

-s Powłoka czyta polecenia ze standardowego wejścia; wszystkie argumenty nieopcyjne są
parametry pozycyjne.

-T Nazwa Ikra mksz na tty(4) dane urządzenie. Ścieżki Nazwa, /dev/ttyCnazwa i
/dev/nazwa_tty są próbowane w kolejności. Chyba że Nazwa zaczyna się od wykrzyknika
(„!”), odbywa się to w podpowłoce i natychmiast powraca. Jeśli Nazwa jest kreską
('-'), zamiast tego odłącz się od terminala sterującego (demonizuj).

Oprócz powyższych, opcje opisane w pkt zestaw można również użyć wbudowanego polecenia
w linii poleceń: oba [-+abCefhkmnuvXx] I [-+ o opcja] może być użyte dla pojedynczej litery
lub długie opcje, odpowiednio.

Jeśli żadne -c ani -s opcja jest określona, ​​pierwszy argument niebędący opcją określa
nazwa pliku, z którego powłoka czyta polecenia. Jeśli nie ma argumentów innych niż opcja, funkcja
Shell czyta polecenia ze standardowego wejścia. Nazwa powłoki (tzn. zawartość
$0) ustala się w następujący sposób: jeśli -c używana jest opcja i występuje argument niebędący opcją,
jest używane jako nazwa; jeśli polecenia są odczytywane z pliku, plik ten jest używany jako
nazwa; w przeciwnym razie używana jest nazwa bazowa, z jaką została wywołana powłoka (tj. argv[0]).

Status wyjścia powłoki to 127, jeśli plik poleceń podany w wierszu poleceń może
nie zostać otwarte lub niezerowe, jeśli podczas wykonywania a. wystąpił krytyczny błąd składniowy
scenariusz. W przypadku braku błędów krytycznych, status wyjścia jest taki, jak w przypadku ostatniego polecenia
wykonane lub zero, jeśli nie wykonano żadnego polecenia.

Uruchomienie pliki
Aby zapoznać się z rzeczywistą lokalizacją tych plików, zobacz AKTA. Powłoka logowania przetwarza system
najpierw profil. Następnie uprzywilejowana powłoka przetwarza profil suid. Logowanie nieuprzywilejowane
Shell następnie przetwarza profil użytkownika. Nieuprzywilejowana powłoka interaktywna sprawdza wartość
parametru ENV po poddaniu go parametrowi, poleceniu, arytmetyce i tyldzie („~”)
podstawienie; jeśli nieustawiony lub pusty, przetwarzany jest profil mkshrc użytkownika; w przeciwnym razie, jeśli plik
którego nazwa jest wynikiem podstawienia istnieje, jest przetwarzany; nieistnienie jest ciche
ignorowane. Uprzywilejowana powłoka następnie traci uprawnienia, jeśli żadne z nich nie było -p opcja podana na
wiersza poleceń ani nie ustawiane podczas wykonywania plików startowych.

Command składnia
Następnie powłoka zaczyna analizować dane wejściowe, usuwając wszelkie kombinacje ukośnika odwrotnego i nowej linii
włamując się do niego słowa. Słowa (będące ciągami znaków) są rozdzielane bez cudzysłowu
białe znaki (spacja, tabulator i nowa linia) lub metaznaki („<”, „>”, „|”, „;”, „(”,
')', I '&'). Oprócz oddzielania słów, spacje i tabulatory są ignorowane, a znaki nowej linii
zwykle ograniczają polecenia. Metaznaki są używane do tworzenia następujących elementów tokeny:
„<”, „<&”, „<<”, „<<<”, „>”, „>&”, „>>”, „&>” itd. służą do określenia przekierowań (patrz
Wejście / wyjście przekierowanie poniżej); '|' służy do tworzenia rurociągów; „|&” służy do tworzenia współ-
procesy (patrz Współprocesy poniżej); ';' służy do oddzielania poleceń; „&” służy do tworzenia
rurociągi asynchroniczne; „&&” i „||” służą do określenia wykonania warunkowego; „;;”, „;&”
i ';|' są używane w walizka sprawozdania; „(( .. ))” jest używane w wyrażeniach arytmetycznych; I
na koniec „( .. )” służy do tworzenia podpowłok.

Białe znaki i metaznaki można cytować pojedynczo, używając ukośnika odwrotnego („\”) lub in
grupy przy użyciu cudzysłowów podwójnych („”) lub pojedynczych („”). Należy pamiętać, że następujące znaki to:
również traktowane specjalnie przez powłokę i muszą być cytowane, jeśli mają reprezentować same siebie:
'\', '"', ''', '#', '$', '`', '~', '{', '}', '*', '?' i '['. pierwsze trzy z nich
to wspomniane powyżej znaki cytowania (patrz Cytowanie poniżej); „#”, jeśli jest używany w
początek słowa, wprowadza komentarz – wszystko po znaku „#” aż do najbliższej wartości
znak nowej linii jest ignorowany; Znak „$” służy do wprowadzania parametrów, poleceń i działań arytmetycznych
substytucje (patrz Podstawienie poniżej); „” wprowadza podstawienie poleceń w starym stylu
(Patrz Podstawienie poniżej); „~” rozpoczyna rozszerzanie katalogu (patrz Tylda ekspansja poniżej); '{'
i „}”. csh(1) zmiany w stylu (patrz Klamra ekspansja poniżej); i w końcu, '*',
„?” i „[” są używane przy generowaniu nazw plików (patrz filet Nazwa wzory poniżej).

Podczas analizowania słów i tokenów powłoka tworzy polecenia, z których są dwa podstawowe
typy: proste polecenia, zazwyczaj wykonywane programy i polecenia złożone, taki
as dla i if instrukcje, konstrukcje grupujące i definicje funkcji.

Proste polecenie składa się z pewnej kombinacji przypisań parametrów (patrz parametry
poniżej), przekierowania wejścia/wyjścia (patrz Wejście / wyjście przekierowania poniżej) i słowa poleceń;
jedynym ograniczeniem jest to, że przypisanie parametrów następuje przed słowami poleceń. The
słowa poleceń, jeśli istnieją, definiują polecenie, które ma zostać wykonane, i jego argumenty. The
polecenie może być poleceniem wbudowanym w powłokę, funkcją lub poleceniem zewnętrznym (tj
plik wykonywalny, który znajduje się za pomocą parametru PATH; Widzieć Command egzekucja poniżej).
Należy pamiętać, że wszystkie konstrukcje poleceń mają status wyjścia: w przypadku poleceń zewnętrznych jest to powiązane
do stanu zwróconego przez czekać(2) (jeśli nie można znaleźć polecenia, status wyjścia to
127; jeżeli nie udało się tego wykonać, status wyjścia wynosi 126); status wyjścia innego polecenia
konstrukcje (wbudowane polecenia, funkcje, polecenia złożone, potoki, listy itp.) są
dobrze zdefiniowane i są opisane tam, gdzie opisano konstrukt. Status wyjścia a
polecenie składające się wyłącznie z przypisań parametrów jest poleceniem ostatniego podstawienia polecenia
wykonane podczas przypisywania parametrów lub 0, jeśli nie było podstawień poleceń.

Polecenia można łączyć ze sobą za pomocą znaku „|” token do tworzenia potoków, w których
standardowe wyjście każdego polecenia, ale ostatnie jest przesyłane potokowo (patrz rura(2)) na standardowe wejście
następujące polecenie. Status wyjścia potoku jest taki, jak w przypadku jego ostatniego polecenia, chyba że
dotychczasowy awaria potoku opcja jest ustawiona (patrz tam). Wszystkie polecenia potoku są wykonywane osobno
podpowłoki; jest to dozwolone przez POSIX, ale różni się od obu wariantów AT&T UNIX ksh, Gdzie
wszystkie oprócz ostatniego polecenia zostały wykonane w podpowłokach; zobacz czytać opis wbudowanego dla
konsekwencje i obejścia. Potok może być poprzedzony znakiem „!” słowo zastrzeżone które
powoduje logiczne uzupełnienie statusu wyjścia potoku: jeśli status pierwotny
wynosiło 0, uzupełniony status będzie wynosił 1; jeśli pierwotny status nie wynosił 0, uzupełniony
stan będzie wynosić 0.

wykazy poleceń można utworzyć, oddzielając potoki dowolnym z następujących tokenów:
„&&”, „||”, „&”, „|&” i „;”. Pierwsze dwa służą do wykonania warunkowego: „cmd1 && cmd2"
stracony cmd2 tylko wtedy, gdy status wyjścia cmd1 wynosi zero; „||” jest odwrotnie – cmd2 is
wykonywane tylko wtedy, gdy status wyjścia cmd1 jest niezerowy. „&&” i „||” mają równy priorytet
która jest wyższa niż wartość „&”, „|&” i „;”, które również mają równy priorytet. Notatka
że „&&” i „||” operatory są „lewo-skojarzone”. Na przykład jedno i drugie
polecenia wypiszą tylko „pasek”:

$ fałsz && echo foo || pasek echa
$ prawda || echo foo i& pasek echa

Token „&” powoduje asynchroniczne wykonanie poprzedniego polecenia; czyli skorupa
uruchamia polecenie, ale nie czeka na jego zakończenie (powłoka śledzi plik
status poleceń asynchronicznych; Widzieć Praca kontrola poniżej). Gdy polecenie asynchroniczne jest
uruchamiane, gdy kontrola zadań jest wyłączona (tj. w większości skryptów), polecenie jest uruchamiane za pomocą
sygnały SIGINT i SIGQUIT są ignorowane i z przekierowaniem wejścia / dev / null (Jednakże,
przekierowania określone w poleceniu asynchronicznym mają pierwszeństwo). Operator „|&”.
rozpoczyna koproces, który jest szczególnym rodzajem procesu asynchronicznego (patrz Współprocesy
poniżej). Pamiętaj, że polecenie musi następować po znakach „&&” i „||” operatorów, choć nie jest to konieczne
podążaj za znakami „&”, „|&” lub „;”. Status wyjścia listy to status ostatniego wykonanego polecenia,
z wyjątkiem list asynchronicznych, dla których status wyjścia wynosi 0.

Polecenia złożone są tworzone przy użyciu następujących słów zastrzeżonych. Te słowa są jedyne
rozpoznawane, jeśli nie są cytowane i są użyte jako pierwsze słowo polecenia (tj
nie mogą być poprzedzone przypisaniami parametrów ani przekierowaniami):

w takim razie działaj inaczej! (
wykonaj esac, jeśli czas [[ ((
koniec, dołącz do {
elif dla wyboru podczas }

W poniższych opisach poleceń złożonych, listy poleceń (oznaczone jako podstęp) to są
po których następują słowa zastrzeżone, muszą kończyć się średnikiem, znakiem nowej linii lub a (syntaktycznie
poprawne) słowo zastrzeżone. Na przykład wszystkie poniższe są prawidłowe:

$ { echo foo; pasek echa; }
$ { echo foo; pasek echa }
$ { { echo foo; pasek echa; } }

To nie jest ważne:

$ { echo foo; pasek echa }

(podstęp)
Wykonać podstęp w podpowłoce. Nie ma ukrytego sposobu przekazywania zmian w środowisku
podpowłokę z powrotem do jej rodzica.

{ podstęp; }
Konstrukcja złożona; podstęp jest wykonywany, ale nie w podpowłoce. Zwróć uwagę, że „{” i „}”
są słowami zastrzeżonymi, a nie metaznakami.

walizka słowo W [[(] wzorzec [| wzorzec] ...) podstęp terminator] ... esak
Połączenia walizka instrukcja próbuje dopasować słowo przeciwko określonemu wzorzec; podstęp
wykonywany jest skojarzony z pierwszym pomyślnie dopasowanym wzorcem. Wzory użyte w
walizka instrukcje są takie same, jak te używane we wzorcach nazw plików, z tą różnicą, że
ograniczenia dotyczące „.” i „/” są usuwane. Należy pamiętać, że wszelkie niecytowane spacje przed
i po usunięciu wzoru; każda spacja we wzorcu musi być cudzysłowem. Oboje
słowo i wzorce podlegają podstawieniom parametrów, poleceń i arytmetyki,
jak również podstawienie tyldy.

Ze względów historycznych zamiast nich można używać nawiasów otwierających i zamykających in i to C na przykład
walizka $ foo { *) przegapić bar ;; }.

Lista terminatorsą:

';;' Zakończ po liście.

';&' Przejdź do następnej listy.

';|' Oceń pozostałe krotki listy wzorców.

Status wyjścia a walizka oświadczenie jest oświadczeniem wykonanego podstęp; Jeśli nie podstęp is
wykonane, status wyjścia wynosi zero.

dla Nazwa [w słowo ...]; Do podstęp; zrobione
Dla każdego słowo na określonej liście słów parametr Nazwa jest ustawiony na słowo i
podstęp jest wykonywany. Gdyby in nie jest używany do określenia listy słów, parametrów pozycyjnych
Zamiast tego używane są (1 USD, 2 USD itd.). Ze względów historycznych mogą być nawiasy otwierające i zamykające
używane zamiast do i zrobić na przykład dla i; { przegapić $i; }. Status wyjścia a dla
instrukcja jest ostatnim statusem wyjścia podstęp; Jeśli podstęp nigdy nie jest wykonywany, status wyjścia
wynosi zero.

if podstęp; następnie podstęp; [elif podstęp; następnie podstęp;] ... [w przeciwnym razie podstęp;] Fi
Jeśli status wyjścia pierwszego podstęp wynosi zero, druga podstęp jest wykonywany; W przeciwnym razie,
dotychczasowy podstęp po Elif, jeśli istnieje, jest wykonywany z podobnymi konsekwencjami. Spadam
listy następujące po if i Elifs nie powiodło się (tzn. wyjście ze statusem niezerowym), the podstęp
po więcej jest wykonywany. Status wyjścia if stwierdzenie jest takie, że nie-
warunkowy podstęp który jest wykonywany; jeśli nie, bezwarunkowe podstęp jest wykonywany, wyjście
stan jest zerowy.

wybierać Nazwa [w słowo ...]; Do podstęp; zrobione
Połączenia wybierać instrukcja umożliwia automatyczną prezentację użytkownikowi menu
i wybierając z niego. Wyliczona lista określonych słowo(s) jest wydrukowane
standardowy błąd, po którym następuje zachęta (PS3: zwykle „#?”). Liczba odpowiadająca
następnie ze standardowego wejścia odczytywane jest jedno z wyliczonych słów, Nazwa jest ustawiony na
wybrane słowo (lub nieustawione, jeśli wybór jest nieprawidłowy), opcja ODPOWIEDŹ jest ustawiana na to, co zostało przeczytane
(spacja wiodąca/końcowa jest usunięta) i podstęp jest wykonywany. Jeśli pusta linia (tj
wprowadzono zero lub więcej oktetów IFS), menu zostanie ponownie wydrukowane bez wykonywania podstęp.

Kiedy podstęp zostanie ukończony, wyliczona lista zostanie wydrukowana, jeśli ODPOWIEDŹ ma wartość NULL, pojawi się monit
drukowane i tak dalej. Proces ten trwa do momentu odczytania końca pliku, czyli przerwania
zostanie odebrany lub a złamać instrukcja wykonywana jest wewnątrz pętli. Jeśli „słowem…” jest
pominięty, używane są parametry pozycyjne (tj. 1 $, 2 $, itd.). Za historyczne
powodów zamiast tego można używać nawiasów otwierających i zamykających do i zrobić na przykład wybierać i; {
przegapić $i; }. Status wyjścia a wybierać instrukcja ma wartość zero, jeśli a złamać oświadczenie jest
używany do wyjścia z pętli, w przeciwnym razie niezerowy.

aż do podstęp; robić podstęp; zrobione
To działa jak Podczas, z tą różnicą, że treść jest wykonywana tylko wtedy, gdy status wyjścia
pierwszy podstęp jest niezerowe.

Podczas podstęp; robić podstęp; zrobione
A Podczas jest wstępnie sprawdzoną pętlą. Jego treść jest wykonywana tak często, jak status wyjścia
pierwszy podstęp wynosi zero. Status wyjścia a Podczas instrukcja jest ostatnim statusem wyjścia
ukończenia podstęp w ciele pętli; jeśli treść nie zostanie wykonana, status wyjścia to
zero.

funkcjonować Nazwa { podstęp; }
Definiuje funkcję Nazwa (Patrz Funkcje poniżej). Należy pamiętać, że określono przekierowania
po zdefiniowaniu funkcji są wykonywane zawsze, gdy funkcja jest wykonywana, a nie kiedy
wykonywana jest definicja funkcji.

Nazwa() komenda
Najczęściej takie same jak funkcjonować (Patrz Funkcje poniżej). Białe znaki (spacja lub tabulator) po
Nazwa będą ignorowane przez większość czasu.

funkcjonować Nazwa() { podstęp; }
Taki sam jak Nazwa() (bashizm). The funkcjonować słowo kluczowe jest ignorowane.

czas [-p] [rurociąg]
Połączenia Command egzekucja sekcja opisuje czas zastrzeżone słowo.

(( wyrażenie ))
Wyrażenie arytmetyczne wyrażenie jest oceniany; odpowiednik „wyrażenia niech” (patrz
Arytmetyka wyrażeń oraz niech polecenie poniżej) w konstrukcji złożonej.

[[ wyrażenie ]]
Podobnego do test i [ ... ] polecenia (opisane później), z następującymi
wyjątki:

· Dzielenie pól i generowanie nazw plików nie są wykonywane na argumentach.

· Połączenia -a (I i -o operatory (OR) są zastępowane odpowiednio przez „&&” i „||”.

· Operatory (np. '-f', '=', '!') nie może być cudzysłowu.

· Podstawienia parametrów, poleceń i arytmetyki są wykonywane tak samo, jak wyrażenia
oceniane i leniwe ocena wyrażeń jest używana dla „&&” i „||” operatorzy.
Oznacza to, że w poniższym stwierdzeniu $( jest oceniana wtedy i tylko wtedy, gdy
plik bla istnieje i jest czytelny:

$ [[ -r foo && $(

· Drugi operand wyrażeń „!=” i „=” jest podzbiorem wzorców (np
porównanie [[ foobar = k*r ]] się uda). To działa nawet pośrednio:

$ bar=foobar; baz='f*r'
$ [[ $bar = $baz ]]; powtórzyć $?
$ [[ $bar = "$baz" ]]; powtórzyć $?

Być może zaskakujące jest to, że pierwsze porównanie się powiedzie, podczas gdy drugie nie.
Obecnie nie dotyczy to wszystkich metaznaków extglob.

Cytowanie
Cytowanie służy do zapobiegania specjalnemu traktowaniu przez powłokę znaków lub słów. Tam są
trzy metody cytowania. Po pierwsze, „\” cytuje następujący znak, chyba że znajduje się on na
koniec linii, w którym to przypadku zarówno znak „\”, jak i znak nowej linii zostaną usunięte. Po drugie, singiel
cudzysłów („'”) cytuje wszystko aż do następnego pojedynczego cudzysłowu (może obejmować linie). Po trzecie, A
podwójny cudzysłów („”) cytuje wszystkie znaki z wyjątkiem „$”, „`” i „\”, aż do następnego bez znaku zmiany znaczenia
cudzysłów. „$” i „” w cudzysłowie mają swoje zwykłe znaczenie (tzn. parametr,
arytmetyka lub podstawienie poleceń), chyba że na wynikach nie jest przeprowadzany podział pól
podstawień w cudzysłowie, podobnie jak w starej formie podstawienia poleceń
włączone cytowanie odwrotnego ukośnika dla podwójnych cudzysłowów. Jeśli „\” wewnątrz ciągu znaków w podwójnym cudzysłowie to
po którym następuje „\”, „$”, „`” lub „””, zastępuje się go drugim znakiem; jeśli po nim następuje
przy znaku nowej linii usuwany jest zarówno znak „\”, jak i znak nowej linii; w przeciwnym razie zarówno „\”, jak i
następujące znaki pozostają niezmienione.

Jeśli ciąg znaków w pojedynczym cudzysłowie jest poprzedzony niecytowanym znakiem „$”, rozwinięcie ukośnika odwrotnego w stylu C (patrz
poniżej) jest stosowany (nawet znajdujące się w nim znaki pojedynczego cudzysłowu można pominąć i nie zakończyć
następnie ciąg znaków); rozwinięty wynik jest traktowany jak każdy inny ciąg znaków w pojedynczym cudzysłowie. Jeśli
ciąg znaków w cudzysłowie jest poprzedzony znakiem „$” bez cudzysłowu, znak „$” jest po prostu ignorowany.

Ukośnik wsteczny ekspansja
W miejscach, w których rozwijane są ukośniki odwrotne, niektóre C i AT&T UNIX ksh lub GNU bash styl
ucieczki są tłumaczone. Należą do nich „\a”, „\b”, „\f”, „\n”, „\r”, „\t”, „\U########”,
„\u####” i „\v”. W przypadku '\U########' i '\u####', "#" oznacza cyfrę szesnastkową, w tym
może nie być ich aż do czterech lub ośmiu; te ucieczki tłumaczą punkt kodowy Unicode na UTF-8.
Ponadto „\E” i „\e” rozwijają się do znaku ucieczki.

W tryb wbudowany, '\"', '\'' i '\?' są wyraźnie wykluczone; sekwencje ósemkowe
musi mieć nie więcej niż trzy cyfry ósemkowe „#” poprzedzone cyfrą zerową („\0###”);
sekwencje szesnastkowe „\x##” są ograniczone do zera do dwóch cyfr szesnastkowych „#”; Zarówno
sekwencje ósemkowe i szesnastkowe konwertowane są na surowe oktety; '\#', gdzie # nie oznacza żadnego z powyższych,
przekłada się na \# (ukośniki odwrotne zostają zachowane).

Rozwinięcie ukośnika odwrotnego w trybie stylu C nieco się różni: sekwencje ósemkowe „\###” muszą mieć
żadna cyfra zero nie poprzedza jednej do trzech cyfr ósemkowych „#” i daje surowe oktety;
sekwencje szesnastkowe „\x#*” zachłannie pochłaniają tyle cyfr szesnastkowych „#”, ile tylko mogą, i
zakończyć pierwszą cyfrą inną niż szesnastkowa; tłumaczą one punkt kodowy Unicode na
UTF-8. Sekwencja „\c#”, gdzie „#” jest dowolnym oktetem, przekłada się na Ctrl-# (co w zasadzie
oznacza „\c?” staje się DEL, wszystko inne jest bitowe AND z 0x1F). Na koniec „\#”, gdzie
# nie jest żadnym z powyższych, przekłada się na # (z obciętym ukośnikiem odwrotnym), nawet jeśli jest to a
Nowa linia.

Pseudonimy
Istnieją dwa typy aliasów: zwykłe aliasy poleceń i śledzone aliasy. Aliasy poleceń
są zwykle używane jako krótka ręka dla długiego lub często używanego polecenia. Skorupa rozszerza się
aliasy poleceń (tzn. zastępuje jego wartość nazwą aliasu), gdy czyta pierwsze słowo
polecenia. Rozwinięty alias jest ponownie przetwarzany w celu sprawdzenia obecności większej liczby aliasów. Jeśli polecenie
alias kończy się spacją lub tabulatorem, sprawdzane jest również następujące słowo pod kątem rozwinięcia aliasu. The
Proces rozwijania aliasów zatrzymuje się, gdy zostanie znalezione słowo niebędące aliasem, gdy pojawi się słowo w cudzysłowie
zostanie znalezione lub gdy zostanie znalezione słowo aliasu, które jest aktualnie rozwijane. Aliasy są
w szczególności funkcja interaktywna: choć zdarza się, że działają w skryptach i na
w wierszu poleceń w niektórych przypadkach aliasy są rozwijane podczas leksyfikowania, więc ich użycie musi odbywać się w formacie a
oddzielne drzewo poleceń od ich definicji; w przeciwnym razie alias nie zostanie znaleziony.
Co zauważalne, listy poleceń (oddzielone średnikiem, przy podstawieniach poleceń także znakiem nowej linii)
może być tym samym drzewem analizy.

Następujące aliasy poleceń są definiowane automatycznie przez powłokę:

autoload='\typeset -fu'
funkcje='\zestaw -f'
hash='\wbudowany alias -t'
historia='\wbudowany fc -l'
liczba całkowita='\typeset -i'
local='\zestaw'
login='\exec login'
nameref='\typeset -n'
nohup='nohup '
r='\wbudowany fc -e -'
typ='\wbudowany skąd -v'

Śledzone aliasy pozwalają powłoce zapamiętać, gdzie znalazła określone polecenie. Pierwszy
zapisuje, ilekroć powłoka szuka ścieżki dla polecenia oznaczonego jako śledzony alias
pełna ścieżka polecenia. Przy następnym wykonaniu polecenia powłoka sprawdza
zapisaną ścieżkę, aby sprawdzić, czy jest ona nadal ważna, a jeśli tak, pozwala uniknąć powtarzania wyszukiwania ścieżki.
Śledzone aliasy można wyświetlać i tworzyć za pomocą alias -t. Pamiętaj, że zmiana PATH
Parametr czyści zapisane ścieżki dla wszystkich śledzonych aliasów. Jeśli trackall opcja jest ustawiona
(to znaczy zestaw -o trackall or zestaw -h), powłoka śledzi wszystkie polecenia. Ta opcja jest ustawiona
automatycznie dla powłok nieinteraktywnych. W przypadku powłok interaktywnych tylko poniższe
polecenia są śledzone automatycznie: jak(1) cc(1) chmod(1) cp(1) dane(1) ed(1)
emacs(1) grep(1) ls(1) robić(1) mv(1) pr(1) rm(1) sed(1) sh(1) vi(1), a którzy testują i oceniają narzędzia, przedstawiając swoje potrzeby i wyzwania w kontekście stosowanych narzędzi(1).

Podstawienie
Pierwszym krokiem, jaki wykonuje powłoka podczas wykonywania prostego polecenia, jest wykonanie podstawień
słowa polecenia. Istnieją trzy rodzaje podstawień: parametr, polecenie i
arytmetyka. Podstawienia parametrów, które szczegółowo opisano w następnym rozdziale,
przyjmij formę $Nazwa lub ${...}; podstawienia poleceń mają postać $(komenda) lub
(przestarzałe) `komenda` lub (wykonywane w bieżącym środowisku) ${ komenda;} i rozbierz się
końcowe znaki nowej linii; a podstawienia arytmetyczne mają postać $((wyrażenie)). Analizowanie
podstawienie polecenia bieżącego środowiska wymaga spacji, tabulatora lub nowej linii po otwarciu
nawias klamrowy i aby nawias zamykający był rozpoznawany jako słowo kluczowe (tj. był poprzedzony znakiem nowej linii
lub średnik). Nazywa się je również funsubami (podstawieniami funkcji) i zachowują się podobnie
w tym funkcjonuje miejscowy i powrót pracować i w tym wyjście kończy powłokę nadrzędną; powłoka
opcje są wspólne.

Innym wariantem podstawienia są valsubs (podstawienia wartości) ${|komenda;} które są
również wykonywane w bieżącym środowisku, jak funsuby, ale współdzielą swoje wejścia/wyjścia z rodzicem;
zamiast tego oceniają dowolną początkowo pustą zmienną lokalną wyrażenia REPLY
ustawiony na wewnątrz komendas.

Jeśli podstawienie pojawia się poza podwójnym cudzysłowem, wyniki podstawienia są takie
zasadniczo podlega podziałowi na słowa lub pola zgodnie z aktualną wartością IFS
parametr. Parametr IFS określa listę oktetów używanych do dzielenia łańcucha
na kilka słów; dowolne oktety z ustawionej spacji, tabulatora i nowej linii, które pojawiają się w IFS
oktety nazywane są „białymi znakami IFS”. Sekwencje jednego lub więcej oktetów białych znaków IFS, in
kombinacja z zerem lub jednym oktetem białych znaków innym niż IFS wyznacza pole. Jako szczególny przypadek
Początkowe i końcowe białe znaki IFS są usuwane (tj. nie ma żadnych początkowych ani końcowych pustych pól
przez niego stworzony); początkowe lub końcowe białe znaki inne niż IFS tworzą puste pole.

Przykład: Jeśli IFS jest ustawione na „ :”, a VAR jest ustawiony na
„ A : B::D”, podstawienie $VAR skutkuje czterema polami: „A”,
„B”, „” (puste pole) i „D”. Należy pamiętać, że jeśli parametr IFS jest ustawiony na pusty
string, nie jest wykonywane żadne dzielenie pól; jeśli nie jest ustawiona, domyślna wartość spacji, tabulatora i
używana jest nowa linia.

Należy również pamiętać, że podział pola dotyczy tylko bezpośredniego wyniku
podstawienie. Korzystając z poprzedniego przykładu, podstawienie $VAR:E skutkuje
pola: „A”, „B”, „” i „D:E”, a nie „A”, „B”, „”, „D” i „E”. To zachowanie jest zgodne z POSIX
zgodny, ale niekompatybilny z niektórymi innymi implementacjami powłoki, które dzielą pola
na słowie zawierającym podstawienie lub użyj IFS jako ogólnego separatora białych znaków.

Wyniki podstawienia, jeśli nie określono inaczej, również podlegają rozszerzeniu nawiasów
i rozwijanie nazw plików (patrz odpowiednie sekcje poniżej).

Podstawienie polecenia jest zastępowane przez wynik wygenerowany przez określone polecenie, czyli
działać w podpowłoce. Za $(komenda) i ${|komenda;} i ${ komenda;} podstawienia, normalne
reguły cytowania są używane, gdy komenda jest analizowany; jednak dla przestarzałych `komenda`forma, a
Znak „\”, po którym następuje dowolne z „$”, „” lub „\” jest usuwany (podobnie jak „””, gdy podstawienie jest częścią
ciągu znaków w cudzysłowie); ukośnik odwrotny „\”, po którym następuje dowolny inny znak, pozostaje niezmieniony.
Jako szczególny przypadek w podstawieniach poleceń, polecenie formularzafilet jest interpretowane
oznacza zastąpienie zawartości filet, Należy pamiętać, że $( ma taki sam efekt jak $(kot bla).

Należy zauważyć, że niektóre powłoki nie używają parsera rekurencyjnego do podstawień poleceń, co prowadzi do
awaria niektórych konstrukcji; aby był przenośny, użyj jako obejścia „x=$(cat) <<„EOF”” (lub
rozszerzenie „x=<<„EOF” zachowujące nową linię) zamiast po prostu siorbać ciąg znaków. Standard IEEE 1003.1
(„POSIX.1”) zaleca używanie instrukcji case w postaci 'x=$(case $foo in (bar) echo $bar
;; (*) echo $baz ;; esac)', co będzie działać, ale nie będzie służyć jako przykład
problem z przenośnością.

x=$(przypadek $foo w pasku) echo $pasek ;; *) echo $baz ;; esac)
# powyżej nie analizuje starych powłok; poniżej znajduje się obejście
x=$(eval $(cat)) <<"EOF"
case $foo w barze) echo $bar ;; *) echo $baz ;; esac
EOF

Podstawienia arytmetyczne są zastępowane wartością określonego wyrażenia. Dla
przykład polecenie $((2+3*4)) wyświetla 14. Patrz Arytmetyka wyrażeń dla
opis wyrażenia.

parametry
Parametry są zmiennymi powłoki; można im przypisywać wartości i można uzyskać dostęp do ich wartości
za pomocą podstawienia parametrów. Nazwa parametru jest jedną ze specjalnych nazw pojedynczych
parametry znaków interpunkcyjnych lub cyfr opisanych poniżej, lub litera, po której następuje zero lub
więcej liter lub cyfr („_” liczy się jako litera). Tę ostatnią formę można traktować jako tablice
dołączając indeks tablicy w postaci [expr] gdzie expr jest wyrażeniem arytmetycznym.
Indeksy tablicy w mksz są ograniczone do zakresu od 0 do 4294967295 włącznie. To jest,
są 32-bitową liczbą całkowitą bez znaku.

Podstawienia parametrów mają postać $Nazwa, ${Nazwa} lub ${Nazwa[expr]} Gdzie Nazwa jest
Nazwa parametru. Podstawienie wszystkich elementów tablicy za pomocą ${Nazwa[*]} i ${Nazwa[@]} Pracuje
odpowiednik $* i $@ dla parametrów pozycyjnych. Jeśli podstawienie odbywa się na a
parametr (lub element parametru tablicy), który nie jest ustawiony, zastępowany jest ciąg pusty
dopóki rzeczownik opcja (zestaw -o rzeczownik or zestaw -u) jest ustawiony, w takim przypadku wystąpi błąd.

Parametrom można przypisywać wartości na wiele sposobów. Po pierwsze, powłoka domyślnie ustawia
niektóre parametry, takie jak „#”, „PWD” i „$”; jest to jedyny sposób na użycie pojedynczego znaku specjalnego
parametry są ustawione. Po drugie, parametry są importowane ze środowiska powłoki pod adresem
uruchomienie. Po trzecie, parametrom można przypisać wartości w wierszu poleceń: na przykład FOO=pasek
ustawia parametr „FOO” na „bar”; Do pojedynczego parametru można przypisać wiele parametrów
wiersza poleceń i może po nich nastąpić proste polecenie, w którym to przypadku przypisania są takie
obowiązują tylko przez czas trwania polecenia (takie przydziały są również eksportowane; zob
poniżej, aby zapoznać się z konsekwencjami tego). Należy pamiętać, że zarówno nazwa parametru, jak i „=” muszą mieć postać
bez cudzysłowu, aby powłoka rozpoznała przypisanie parametrów. Konstrukt FOO+=baza Jest również
uznany; stare i nowe wartości są natychmiast łączone. Czwarty sposób ustawienia
parametr jest z eksport, światowy, tylko czytać, skład polecenia; zobacz ich
opisy w Command egzekucja Sekcja. Piąty, dla i wybierać pętle ustawiają parametry
jak również getopty, czytać, zestaw -A polecenia. Na koniec można przypisać parametry
wartości za pomocą operatorów przypisania wewnątrz wyrażeń arytmetycznych (patrz Arytmetyka wyrażeń
poniżej) lub używając ${Nazwa=wartość} forma podstawienia parametrów (patrz niżej).

Parametry z atrybutem eksportu (ustawiane za pomocą eksport or skład -x polecenia lub przez
przypisania parametrów, po których następują proste polecenia) są umieszczane w środowisku (patrz
otaczać(7)) poleceń uruchamianych przez powłokę jako Nazwa=wartość pary. Kolejność parametrów
pojawiające się w środowisku polecenia jest nieokreślone. Kiedy powłoka się uruchomi, to
wyodrębnia parametry i ich wartości ze swojego środowiska i automatycznie ustawia eksport
atrybut dla tych parametrów.

Modyfikatory można zastosować do ${Nazwa} forma podstawienia parametrów:

${Nazwa:-słowo}
If Nazwa jest ustawiony, a nie NULL, jest podstawiony; W przeciwnym razie, słowo jest podstawiony.

${Nazwa:+słowo}
If Nazwa jest ustawiony, a nie NULL, słowo jest podstawiony; w przeciwnym razie nic nie zostanie zastąpione.

${Nazwa:=słowo}
If Nazwa jest ustawiony, a nie NULL, jest podstawiony; w przeciwnym razie jest przypisany słowo i
wynikowa wartość Nazwa jest podstawiony.

${Nazwa:?słowo}
If Nazwa jest ustawiony, a nie NULL, jest podstawiony; W przeciwnym razie, słowo jest nadrukowany
błąd standardowy (poprzedzony przez Nazwa:) i pojawia się błąd (zwykle powodujący zakończenie
skryptu powłoki, funkcji lub skryptu pochodzącego z „.” wbudowany). Jeśli słowo is
pominięty, zamiast tego używany jest ciąg „parametr null or not set”. Obecnie błąd,
if słowo jest zmienną, która rozwija się do łańcucha zerowego, komunikat o błędzie również jest
drukowane.

Należy pamiętać, że w przypadku wszystkich powyższych słowo jest faktycznie uważany za cytowany i podlega specjalnej analizie
obowiązują zasady. Zasady analizowania różnią się także pod względem tego, czy wyrażenie jest ujęte w podwójny cudzysłów: słowo
następnie używa zasad podwójnego cudzysłowu, z wyjątkiem samego podwójnego cudzysłowu („”) i zamknięcia
nawias klamrowy, który w przypadku ucieczki odwrotnego ukośnika zostanie zastosowany do usunięcia cudzysłowu.

W powyższych modyfikatorach można pominąć „:”, w takim przypadku warunki zależą tylko od
Nazwa jest ustawiony (w przeciwieństwie do ustawionego, a nie NULL). Jeśli słowo jest potrzebny, parametr, polecenie,
wykonywane są na nim arytmetyka i podstawienie tyldy; Jeśli słowo nie jest potrzebne, nie jest
oceniane.

Można również zastosować następujące formy podstawienia parametrów (if Nazwa jest tablicą,
element z kluczem „0” zostanie podstawiony w kontekście skalarnym):

${#Nazwa}
Liczba parametrów pozycyjnych if Nazwa ma wartość „*”, „@” lub nie została określona; W przeciwnym razie
długość (w znakach) wartości ciągu parametru Nazwa.

${#Nazwa[*]}
${#Nazwa[@]}
Liczba elementów w tablicy Nazwa.

${%Nazwa}
Szerokość (w kolumnach ekranu) wartości ciągu parametru Nazwalub -1 jeśli
${Nazwa} zawiera znak kontrolny.

${!Nazwa}
Nazwa zmiennej, do której odnosi się Nazwa. To będzie Nazwa z wyjątkiem kiedy Nazwa is
odwołanie do nazwy (zmienna powiązana), utworzone przez nazwaref polecenie (które jest aliasem
dla skład -n).

${!Nazwa[*]}
${!Nazwa[@]}
Nazwy indeksów (kluczy) w tablicy Nazwa.

${Nazwa#wzorzec}
${Nazwa##wzorzec}
If wzorzec dopasowuje początek wartości parametru Nazwa, dopasowany tekst to
usunięty z wyniku podstawienia. Pojedynczy „#” daje najkrótszy wynik
mecz, a dwa z nich dają najdłuższy mecz. Nie można zastosować do wektora
(${*} lub ${@} lub ${array[*]} lub ${array[@]}).

${Nazwa%wzorzec}
${Nazwa%%wzorzec}
Podobnie jak podstawienie ${..#..}, ale usuwane jest z końca wartości. Nie może być
zastosowane do wektora.

${Nazwa/wzór/sznurek}
${Nazwa/#wzór/sznurek}
${Nazwa/%wzór/sznurek}
${Nazwa//wzór/sznurek}
Najdłuższy mecz wzorzec w wartości parametru Nazwa jest zastąpiony przez ciąg
(usunięto, jeśli ciąg jest pusty; w takim przypadku końcowy ukośnik („/”) można pominąć).
Wiodący ukośnik, po którym następuje „#” lub „%”, powoduje zakotwiczenie wzorca w miejscu
odpowiednio początek lub koniec wartości; pusty, niezakotwiczony wzorzecprzyczyna nr
wymiana; pojedynczy ukośnik wiodący lub użycie a wzorzec który pasuje do pustego
string powoduje, że zamiana następuje tylko raz; dwa wiodące ukośniki powodują wszystko
wystąpienia dopasowań w wartości, która ma zostać zastąpiona. Nie można zastosować do wektora.
Nieefektywnie wdrażane, może być powolne.

${Nazwa:pisać:len}
Pierwszy len postacie Nazwa, zaczynając od pozycji pisać, są podstawione. Obydwa
pisać I :len są opcjonalne. Jeśli pisać jest ujemna, liczenie rozpoczyna się od końca
strunowy; jeśli zostanie pominięty, domyślnie przyjmuje wartość 0. Jeśli len jest pominięty lub większy niż
długość pozostałego ciągu, cały jest podstawiony. Obydwa pisać i len jest
oceniane jako wyrażenia arytmetyczne. Obecnie, pisać musi zaczynać się od spacji,
nawias otwierający lub cyfra, która ma zostać rozpoznana. Nie można zastosować do wektora.

${Nazwa@#}
Hash (przy użyciu algorytmu BAFH) rozwinięcia Nazwa. To również jest używane
wewnętrznie dla tablic skrótów powłoki.

${Nazwa@Q}
Cytowane wyrażenie bezpieczne do ponownego wejścia, którego wartość jest wartością Nazwa
parametr, zostaje podstawiony.

Należy pamiętać, że wzorzec może wymagać rozszerzonego wzorca globowania (@(...)), pojedynczego („...”) lub podwójnego
(„…”) Uciekanie cudzysłowu, chyba że -o sh jest ustawiona.

Następujące parametry specjalne są domyślnie ustawiane przez powłokę i nie można ich ustawić bezpośrednio
korzystając z przypisań:

! Identyfikator procesu ostatniego uruchomionego procesu w tle. Jeśli nie ma procesów w tle
został uruchomiony, parametr nie jest ustawiony.

# Liczba parametrów pozycyjnych (1 $, 2 $ itd.).

$ PID powłoki lub PID oryginalnej powłoki, jeśli jest to podpowłoka. Do NIE
użyj tego mechanizmu do generowania tymczasowych nazw plików; Widzieć mktemp(1) zamiast tego.

- Połączenie bieżących opcji jednoliterowych (patrz zestaw polecenie poniżej
aby wyświetlić listę opcji).

? Status wyjścia ostatniego wykonanego polecenia nieasynchronicznego. Jeśli ostatnie polecenie
został zabity sygnałem, $? jest ustawiony na 128 plus numer sygnału, ale maksymalnie 255.

0 Nazwa powłoki, określana w następujący sposób: pierwszy argument mksz Jeśli było
przywołany z -c podano opcję i argumenty; w przeciwnym razie filet argument, jeśli
zostało dostarczone; albo nazwę bazową, z jaką została wywołana powłoka (tj. argv[0]). 0 dolarów
jest również ustawiona na nazwę bieżącego skryptu lub nazwę bieżącej funkcji,
jeśli zostało to zdefiniowane za pomocą funkcjonować słowo kluczowe (tzn. funkcja w stylu powłoki Korna).

1 .. 9 Pierwsze dziewięć parametrów pozycyjnych dostarczonych do powłoki, funkcji lub
skrypt pochodzący z „.” wbudowany. Mogą być dalsze parametry pozycyjne
dostęp za pomocą ${numer}.

* Wszystkie parametry pozycyjne (oprócz 0), czyli $1, $2, $3, ...
Jeśli są użyte poza podwójnymi cudzysłowami, parametry są oddzielnymi słowami (które podlegają
do podziału słów); jeśli są użyte w cudzysłowie, parametry są oddzielone znakiem
pierwszy znak parametru IFS (lub pusty ciąg znaków, jeśli IFS ma wartość NULL).

@ Taki sam jak $*, chyba że zostanie ono użyte w cudzysłowie – w takim przypadku będzie to osobne słowo
generowane dla każdego parametru pozycyjnego. Jeśli nie ma parametrów pozycyjnych, nie
generowane jest słowo. $@ można używać do uzyskiwania dostępu do argumentów, dosłownie, bez utraty
Argumenty NULL lub argumenty dzielące spacjami.

Powłoka ustawia i/lub wykorzystuje następujące parametry:

_ (podkreślenie) Gdy powłoka wykonuje polecenie zewnętrzne, ten parametr
ustawiana jest w środowisku nowego procesu na ścieżkę wykonywanego procesu
Komenda. W przypadku zastosowań interaktywnych ten parametr jest również ustawiany w powłoce nadrzędnej na
ostatnie słowo poprzedniego polecenia.

BASHPID PID powłoki lub podpowłoki.

CDPATH Podobnie jak PATH, ale używany do rozwiązania argumentu do cd wbudowane polecenie. Notatka
że jeśli ustawiono CDPATH i nie zawiera on „.” lub pusty element ciągu, the
bieżący katalog nie jest przeszukiwany. Również, cd zostanie wyświetlone wbudowane polecenie
wynikowy katalog, gdy zostanie znalezione dopasowanie w dowolnej ścieżce wyszukiwania innej niż
pusta ścieżka.

COLUMNS Ustawia liczbę kolumn w terminalu lub oknie. Zawsze ustawione, wartości domyślne
do 80, chyba że wartość zgłoszona przez stty(1) jest niezerowe i wystarczająco rozsądne
(minimum to 12x3); podobne dla LINES. Parametr ten jest używany przez
interaktywne tryby edycji linii oraz przez wybierać, zestaw -o, zabić -l Polecenia
do formatowania kolumn informacyjnych. Importowanie ze środowiska lub rozbrojenie
ten parametr usuwa powiązanie z rzeczywistym rozmiarem terminala na korzyść
podana wartość.

ENV Jeśli po wykonaniu jakichkolwiek plików profilu okaże się, że ten parametr jest ustawiony, plik
rozwinięta wartość jest używana jako plik startowy powłoki. Zwykle zawiera funkcję
i definicje aliasów.

ERRNO Wartość całkowita powłoki errno zmienny. Wskazuje powód ostatni
wywołanie systemowe nie powiodło się. Jeszcze nie zaimplementowane.

EXECSHELL Jeśli jest ustawiony, przyjmuje się, że ten parametr zawiera powłokę, do której ma być używany
wykonaj to polecenie dobry(2) nie zostanie wykonany i które nie zaczynają się od a
„#!powłokasekwencja.

FCEDIT Edytor używany przez fc polecenie (patrz poniżej).

FPATH Podobnie jak PATH, ale jest używany, gdy wykonywana jest niezdefiniowana funkcja w celu zlokalizowania pliku
zdefiniowanie funkcji. Jest również przeszukiwany, gdy nie można znaleźć polecenia przy użyciu
ŚCIEŻKA. Widzieć Funkcje poniżej, aby uzyskać więcej informacji.

HISTFILE Nazwa pliku używanego do przechowywania historii poleceń. Po przypisaniu lub rozbrojeniu,
plik jest otwierany, historia jest obcinana, a następnie ładowana z pliku; późniejszy
nowe polecenia (prawdopodobnie składające się z kilku linii) są dodawane po ich wydaniu
pomyślnie skompilowany. Udostępnionych zostanie także kilka wywołań powłoki
history, jeśli wszystkie ich parametry HISTFILE wskazują na ten sam plik.

Note: Jeśli HISTFILE nie jest ustawiony lub jest pusty, nie jest używany żaden plik historii. To jest
różni się od AT&T UNIX ksh.

HISTSIZE Liczba poleceń zwykle przechowywanych w historii. Wartość domyślna to 2047. Zrób
nie ustawiaj tej wartości na niesamowicie wysokie wartości, takie jak 1000000000, ponieważ mksz mogą
wówczas nie przydzieli wystarczającej ilości pamięci na historię i nie uruchomi się.

HOME Domyślny katalog dla cd polecenie i wartość zastępującą an
niewykwalifikowany ~ (Patrz Tylda ekspansja poniżej).

IFS Wewnętrzny separator pól, używany podczas podstawienia i przy czytać polecenie, do
podzielić wartości na odrębne argumenty; zwykle ustawione na spację, tabulator i nową linię.
See Podstawienie powyżej, aby uzyskać szczegółowe informacje.

Note: Ten parametr nie jest importowany ze środowiska, gdy jest to powłoka
zaczęło się.

KSHEGID Efektywny identyfikator grupy powłoki.

KSHGID Prawdziwy identyfikator grupy powłoki.

KSHUID Prawdziwy identyfikator użytkownika powłoki.

KSH_VERSION Nazwa i wersja powłoki (tylko do odczytu). Zobacz także polecenia wersji
in Emacs redagowanie tryb i Vi redagowanie tryb sekcje poniżej.

LINENO Numer linii aktualnie wykonywanej funkcji lub skryptu powłoki
wykonany.

LINES Ustawia liczbę linii w terminalu lub oknie. Zawsze ustawione, domyślnie
24. Zobacz KOLUMNY.

EPOCHREALNY CZAS
Czas od epoki, jak zwrócony przez czas dnia(2), sformatowany jako dziesiętny
tv_sek po którym następuje kropka („.”) i tv_usec uzupełnione do dokładnie sześciu miejsc po przecinku
cyfry

OLDPWD Poprzedni katalog roboczy. Nieustawione, jeśli cd nie udało się zmienić
katalogów od chwili uruchomienia powłoki lub jeśli powłoka nie wie, gdzie się znajduje.

OPTARG Podczas używania getopty, zawiera argument dla przeanalizowanej opcji, jeśli tak
wymaga jednego.

OPTIND Indeks następnego argumentu, który ma zostać przetworzony podczas używania getopty. Przypisywanie 1
do tego parametru powoduje getopty przetwarzać argumenty od początku
przy następnym wywołaniu.

PATH Dwukropek (średnik w systemie OS/2) oddzielony listą przeszukiwanych katalogów
podczas wyszukiwania poleceń i plików pochodzących z rozszerzenia „.” polecenie (patrz poniżej).
Pusty ciąg znaków będący wynikiem dwukropka początkowego lub końcowego albo dwóch sąsiadujących ze sobą
dwukropki, jest traktowane jako „.” (bieżący katalog).

PGRP Identyfikator procesu lidera grupy procesów powłoki.

PIPESTATUS Tablica zawierająca kody poziomu błędu (stanu wyjścia), jeden po drugim, ostatniego
Na pierwszym planie bieg rurociągu.

PPID Identyfikator procesu rodzica powłoki.

PS1 Podstawowy monit dotyczący powłok interaktywnych. Parametr, polecenie i arytmetyka
wykonywane są podstawienia i '!' zostaje zastąpione bieżącym poleceniem
numer (patrz fc polecenie poniżej). Dosłowne „!” można umieścić w wierszu polecenia
umieszczanie „!!” w PS1.

Domyślny monit to „$” dla użytkowników innych niż root i „#” dla użytkowników root. Jeśli mksz is
wywoływany przez root i PS1 nie zawiera znaku „#”, czyli wartości domyślnej
będzie używany nawet jeśli PS1 już istnieje w środowisku.

Połączenia mksz dystrybucja zawiera próbkę kropka.mkshrc zawierające wyrafinowane
przykład, ale może ci się spodobać następujący (zwróć uwagę, że
${HOSTNAME:=$(nazwa hosta)} i klauzula odróżniająca root od użytkownika to (in
w tym przykładzie) wykonywane w czasie przypisania PS1, podczas gdy $USER i $PWD są
uciekł i dlatego będzie oceniany za każdym razem, gdy zostanie wyświetlony monit):

PS1='${USER:=$(id -un)}'"@${NAZWA HOSTA:=$(nazwa hosta)}:\$PWD $(
jeśli ((ID USER_ID)); następnie wydrukuj \$; w przeciwnym razie wydrukuj \#; fi) "

Zauważ, że ponieważ edytory wiersza poleceń próbują dowiedzieć się, jak długo wyświetlany jest monit
jest (aby wiedzieli, jak daleko jest do krawędzi ekranu), kody ucieczki w pliku
monit zwykle psuje sytuację. Możesz powiedzieć powłoce, żeby nie liczyła
sekwencje (takie jak kody ucieczki), poprzedzając znak zachęty znakiem
(np. Ctrl-A), po którym następuje powrót karetki, a następnie wytyczenie znaku ucieczki
kody z tym znakiem. Wszelkie wystąpienia tego znaku w znaku zachęty są
nie wydrukowane. Swoją drogą, nie wiń mnie za ten hack; pochodzi z
oryginalny ksh88(1), który wydrukował znak ogranicznika, więc cię nie było
szczęście, jeśli nie masz żadnych znaków niedrukowalnych.

Ponieważ ukośniki odwrotne i inne znaki specjalne mogą być interpretowane przez powłokę,
aby ustawić PS1, albo ucieknij przed samym ukośnikiem odwrotnym, albo użyj podwójnych cudzysłowów. The
to drugie jest bardziej praktyczne. Jest to bardziej złożony przykład, w którym należy unikać bezpośredniego
wprowadź znaki specjalne (na przykład za pomocą ^V w trybie edycji emacsa), który
osadza bieżący katalog roboczy w odwróconym wideo (kolor będzie działać,
również) w wierszu zachęty:

x=$(drukuj \\001)
PS1="$x$(print \\r)$x$(tput więc)$x\$PWD$x$(tput se)$x> "

W związku z silną sugestią Davida G. Korna, mksz teraz obsługuje również
następujący formularz:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

PS2 Dodatkowy ciąg zachęty, domyślnie „>”, używany, gdy potrzebne jest więcej danych wejściowych
wykonaj polecenie.

Podpowiedź PS3 używana przez wybierać instrukcja podczas czytania wyboru menu. Domyślny
Jest '#? '.

PS4 Służy do poprzedzania poleceń drukowanych podczas śledzenia wykonania (patrz zestaw
-x polecenie poniżej). Podstawienia parametrów, poleceń i arytmetycznych to:
wykonane przed wydrukiem. Wartość domyślna to „+”. Możesz to ustawić
zamiast tego na „[$EPOCHREALTIME]”, aby uwzględnić znaczniki czasu.

PWD Bieżący katalog roboczy. Może być rozbrojony lub NULL, jeśli powłoka o tym nie wie
gdzie to jest.

RANDOM Za każdym razem, gdy pojawia się odwołanie do RANDOM, zostaje mu przypisana liczba z zakresu od 0 do 32767
najpierw z liniowego kongruencjalnego PRNG.

ODPOWIEDŹ Domyślny parametr dla czytać polecenie, jeśli nie podano nazw. Używany również w
wybierać pętle do przechowywania wartości odczytywanej ze standardowego wejścia.

SECONDS Liczba sekund od uruchomienia powłoki lub, jeśli parametr został
przypisano wartość całkowitą, liczbę sekund od przypisania plus
wartość, która została przypisana.

TMOUT Jeśli jest ustawiony na dodatnią liczbę całkowitą w powłoce interaktywnej, określa maksimum
liczba sekund, przez jaką powłoka będzie czekać na dane wejściowe po wydrukowaniu pliku podstawowego
monit (PS1). Po przekroczeniu czasu powłoka kończy działanie.

TMPDIR Katalog, w którym tworzone są tymczasowe pliki powłoki. Jeśli ten parametr nie jest
set lub nie zawiera bezwzględnej ścieżki zapisywalnego katalogu, Temporary
pliki są tworzone w / Tmp.

USER_ID Efektywny identyfikator użytkownika powłoki.

Tylda ekspansja
Rozwijanie tyldy, które odbywa się równolegle z podstawieniem parametrów, odbywa się na słowach
zaczynając od niecytowanego „~”. Znaki następujące po tyldzie, aż do pierwszego „/”, jeśli
any, przyjmuje się, że jest to nazwa logowania. Jeśli nazwa logowania jest pusta, „+” lub „-”, wartość
podstawiony zostaje odpowiednio parametr HOME, PWD lub OLDPWD. W przeciwnym razie hasło
plik jest przeszukiwany pod kątem nazwy logowania, a wyrażenie tyldy jest zastępowane nazwą użytkownika
katalog domowy. Jeśli nazwa logowania nie zostanie znaleziona w pliku haseł lub jeśli cytujesz lub
w nazwie logowania następuje podstawienie parametrów, nie następuje podstawienie.

W przypisaniach parametrów (takich jak te poprzedzające proste polecenie lub te występujące w
argumenty alias, eksport, światowy, tylko czytać, skład), rozwinięcie tyldy odbywa się później
dowolne przypisanie (tj. po znaku równości) lub po dwukropku bez cudzysłowu („:”); nazwy logowania
są również oddzielane dwukropkami.

Katalog domowy wcześniej rozszerzonych nazw logowania jest buforowany i ponownie wykorzystywany. The alias -d
polecenia można użyć do wyświetlenia, zmiany i dodania do tej pamięci podręcznej (np alias -d
fac=/usr/local/facility; cd ~fac/bin).

Klamra ekspansja (alternacja)
Wyrażenia nawiasowe mają następującą postać:

prefiks{str1, ...,strN}przyrostek

Wyrażenia są rozwinięte do N słowa, z których każde jest konkatenacją prefiks, stri,
i przyrostek (np. „a{c,b{X,Y},d}e” rozwija się do czterech słów: „ace”, „abXe”, „abYe” i „ade”).
Jak zauważono w przykładzie, wyrażenia nawiasowe mogą być zagnieżdżane, ale powstałe słowa nie
posortowane. Aby nastąpiło rozwinięcie, wyrażenia nawiasowe muszą zawierać przecinek bez cudzysłowu („,”) (np
{} i {bla} nie są rozwinięte). Rozwinięcie nawiasów następuje po podstawieniu parametrów
i przed wygenerowaniem nazwy pliku.

filet Nazwa wzory
Wzorzec nazwy pliku to słowo zawierające jedno lub więcej niecytowanych znaków „?”, „*”, „+”, „@” lub „!”
znaków lub sekwencji „[..]”. Po rozprężeniu stężenia następuje wymiana skorupy
wzorce nazw plików z posortowanymi nazwami wszystkich plików pasujących do wzorca (jeśli nie
pliki pasują, słowo pozostaje niezmienione). Elementy wzoru mają następujące znaczenie:

? Pasuje do dowolnego pojedynczego znaku.

* Pasuje do dowolnej sekwencji oktetów.

[..] Pasuje do dowolnego oktetu w nawiasach. Zakresy oktetów można określić za pomocą
oddzielając dwa oktety znakiem „-” (np. „[a0-9]” odpowiada literze „a” lub dowolnej cyfrze).
Aby reprezentować siebie, „-” musi być albo cudzysłowem, albo pierwszym lub ostatnim oktetem
na liście oktetów. Podobnie „]” musi być cudzysłowem lub pierwszym oktetem na liście
jeśli ma reprezentować siebie zamiast końca listy. Również „!” pojawiające się
na początku listy ma specjalne znaczenie (patrz poniżej), więc reprezentuje ją
należy zacytować lub umieścić w dalszej części listy.

[!..] Podobnie jak [..], z tą różnicą, że pasuje do dowolnego oktetu spoza nawiasów.

*(wzorzec|...|wzorzec)
Dopasowuje dowolny ciąg oktetów pasujący do zera lub większej liczby wystąpień określonego
wzory. Przykład: wzór *(bla|bar) dopasowuje ciągi „”, „foo”, „bar”,
„foobarfoo” itp.

+(wzorzec|...|wzorzec)
Dopasowuje dowolny ciąg oktetów pasujący do jednego lub większej liczby wystąpień określonego
wzory. Przykład: wzór +(fuj|bar) dopasowuje ciągi „foo”, „bar”,
„foobar” itp.

?(wzorzec|...|wzorzec)
Dopasowuje pusty ciąg lub ciąg pasujący do jednego z określonych wzorców.
Przykład: wzór ?(bla|bar) dopasowuje tylko ciągi „”, „foo” i „bar”.

@(wzorzec|...|wzorzec)
Dopasowuje ciąg pasujący do jednego z określonych wzorców. Przykład: wzór
@(bla|bar) dopasowuje tylko ciągi „foo” i „bar”.

!(wzorzec|...|wzorzec)
Pasuje do dowolnego ciągu, który nie pasuje do żadnego z określonych wzorców. Przykłady:
wzorzec !(bla|bar) dopasowuje wszystkie ciągi znaków z wyjątkiem „foo” i „bar”; wzór !(*)
nie pasuje do żadnych ciągów; wzór !(?)* dopasowuje wszystkie ciągi (pomyśl o tym).

Należy pamiętać, że skomplikowane globowanie, szczególnie w przypadku alternatyw, jest powolne; używając oddzielnych
porównania mogą (ale nie muszą) być szybsze.

Należy pamiętać, że mksz (I pdksz) nigdy nie pasuje do „.” i „..”, ale AT&T UNIX ksh, Bourne'a shi GNU
bash zrobić.

Należy zauważyć, że żaden z powyższych elementów wzorca nie pasuje do kropki („.”) na początku a
nazwa pliku lub ukośnik („/”), nawet jeśli są one wyraźnie użyte w sekwencji [..]; również,
nazwy '.' i „..” nigdy nie są dopasowywane, nawet według wzorca „.*”.

Jeśli markizy opcja jest ustawiona, wszystkie katalogi powstałe w wyniku wygenerowania nazwy pliku
oznaczone końcowym znakiem „/”.

Wejście / wyjście przekierowanie
Kiedy polecenie jest wykonywane, jego standardowe wejście, standardowe wyjście i standardowy błąd (plik
deskryptory odpowiednio 0, 1 i 2) są zwykle dziedziczone z powłoki. Trzy
wyjątkami są polecenia w potokach, dla których wymagane jest standardowe wejście i/lub standard
dane wyjściowe to te skonfigurowane przez potok, polecenia asynchroniczne tworzone podczas kontroli zadań
wyłączone, dla którego początkowo ustawione jest standardowe wejście / dev / nulli polecenia dla
dla których określono którekolwiek z poniższych przekierowań:

>filet Standardowe wyjście jest przekierowywane do filet. Jeśli filet nie istnieje, jest stworzone;
jeśli istnieje, jest to zwykły plik, a nocnik opcja jest ustawiona, błąd
występuje; w przeciwnym razie plik zostanie obcięty. Pamiętaj, że oznacza to polecenie cmd
<fuj > fuj będzie otwarte bla do czytania, a następnie obcinaj go, gdy go otwiera
pisanie, wcześniej cmd ma szansę faktycznie przeczytać bla.

>|filet Taki sam jak >, chyba że plik zostanie obcięty, nawet jeśli nocnik opcja jest ustawiona.

>>filet Taki sam jak >, chyba że filet istnieje, do którego jest dołączany, a nie obcinany.
Ponadto plik jest otwierany w trybie dołączania, więc zapisy zawsze idą na koniec
plik (patrz koncepcja(2)).

<filet Standardowe wejście jest przekierowywane z filet, który jest otwarty do czytania.

<>filet Taki sam jak <, z wyjątkiem tego, że plik jest otwarty do odczytu i zapisu.

<<znacznik Po przeczytaniu wiersza poleceń zawierającego tego rodzaju przekierowanie (tzw
„tutaj dokument”), powłoka kopiuje linie ze źródła poleceń do pliku a
plik tymczasowy aż do dopasowania linii znacznik jest czytany. Kiedy jest polecenie
wykonane, standardowe wejście jest przekierowywane z pliku tymczasowego. Jeśli znacznik
nie zawiera znaków cudzysłowu, przetwarzana jest zawartość pliku tymczasowego
jakby ujęte w cudzysłów za każdym razem, gdy polecenie jest wykonywane, więc parametr,
polecenie i wykonywane są podstawienia arytmetyczne wraz z ukośnikiem odwrotnym („\”)
ucieczki dla „$”, „`”, „\” i „\newline”, ale nie dla „””. Jeśli jest tu wiele
dokumenty są używane w tym samym wierszu poleceń, są zapisywane w odpowiedniej kolejności.

Jeśli nie znacznik jest podany, niniejszy dokument kończy się na następnym << i substytucja
będzie wystawiany. Jeśli znacznik to tylko zestaw pojedynczych „”” lub podwójnych „””
cudzysłów bez niczego pomiędzy, dokument tutaj kończy się na następnej pustej linii
i podstawienie nie zostanie wykonane.

<<-znacznik Taki sam jak <<, z tą różnicą, że w tym dokumencie z linii wiodących zostały usunięte tabulatory.

<<słowo Taki sam jak <<, oprócz tego słowo is tutaj dokument. To się nazywa tutaj
ciąg.

<&fd Standardowe wejście jest powielane z deskryptora pliku fd. fd może być liczbą,
wskazanie numeru istniejącego deskryptora pliku; litera „p”, wskazująca
deskryptor pliku powiązany z wyjściem bieżącego koprocesu; albo
znak '-' wskazujący, że standardowe wejście ma zostać zamknięte. Zauważ to fd is
ograniczone do jednej cyfry w większości implementacji powłoki.

>&fd Taki sam jak <&, chyba że operacja jest wykonywana na standardowym wyjściu.

&>filet Taki sam jak >filet 2> & 1. To jest przestarzała (starsza) wersja GNU bash obsługiwane rozszerzenie
by mksz który obsługuje również poprzedzający jawny numer fd, na przykład
3&>filet jest taki sam jak 3>filet 2> & 3 in mksz ale błąd składniowy w GNU bash.

&>|filet, &>>filet, &>&fd
Taki sam jak >|filet, >>filetlub >&fd, śledzony przez 2> & 1, jak powyżej. To są mksz
rozszerzenia.

W każdym z powyższych przekierowań deskryptor pliku, który jest przekierowywany (tj. standard
wejście lub standardowe wyjście) można podać jawnie poprzedzając przekierowanie liczbą
(przenośnie, tylko jedna cyfra). Podstawienia parametrów, poleceń i arytmetycznych, tylda
wykonywane są podstawienia i (jeśli powłoka jest interaktywna) generowanie nazw plików
dotychczasowy filet, znacznik, fd argumenty przekierowań. Należy jednak pamiętać, że wyniki any
generowanie nazw plików jest używane tylko w przypadku dopasowania pojedynczego pliku; jeśli pasuje wiele plików, plik
używane jest słowo z rozszerzonymi znakami generowania nazwy pliku. Pamiętaj, że w ograniczonym zakresie
powłoki, nie można używać przekierowań, które mogą tworzyć pliki.

W przypadku prostych poleceń przekierowania mogą pojawić się w dowolnym miejscu polecenia; dla poleceń złożonych
(if wyciągi itp.), ewentualne przekierowania muszą pojawić się na końcu. Przekierowania są przetwarzane
po utworzeniu potoków i w podanej kolejności, więc poniższy tekst wydrukuje plik
błąd z dodanym numerem linii:

$ cat /foo/bar 2>&1 >/dev/null | pr -n -t

Deskryptory plików utworzone przez przekierowania we/wy są prywatne dla powłoki.

Arytmetyka wyrażeń
Wyrażenia arytmetyczne w liczbach całkowitych mogą być używane z niech polecenie, wewnątrz wyrażeń $((..)),
wewnątrz odwołań do tablic (np Nazwa[expr]), jako argumenty numeryczne do test polecenie i jako
wartość przypisania do parametru całkowitego. ostrzeżenie: Dotyczy to również opcji ukrytej
konwersja na liczbę całkowitą, na przykład w sposób wykonany przez niech dowództwo. Nigdy użyj niezaznaczonego użytkownika
wkład, np. z otoczenia, do arytmetyki!

Wyrażenia są obliczane przy użyciu arytmetyki ze znakami i mksh_ari_t typ (32-bitowy plik ze znakiem
liczba całkowita), chyba że zaczynają się od pojedynczego znaku „#”, w takim przypadku są używane mksh_uari_t (a
32-bitowa liczba całkowita bez znaku).

Wyrażenia mogą zawierać alfanumeryczne identyfikatory parametrów, odwołania do tablic i liczby całkowite
stałe i można je łączyć z następującymi operatorami C (wymienionymi i pogrupowanymi w
rosnąca kolejność pierwszeństwa):

Operatory jednoargumentowe:

+ - ! ~ ++ --

Operatory binarne:

,
= += -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
||
&&
|
^
&
==! =
<<=>> =
<<< >>> << >>
+ -
* /%

Operatory trójskładnikowe:

?: (pierwszeństwo jest bezpośrednio wyższe niż przypisanie)

Operatory grupujące:

()

Stałe i wyrażenia całkowite są obliczane przy użyciu dokładnie 32-bitowego znaku lub
bez znaku, wpisz z cichym zawijaniem w przypadku przepełnienia liczby całkowitej. Mogą być stałe całkowite
określone dowolnymi zasadami przy użyciu notacji baza#numer, Gdzie baza jest ułamkiem dziesiętnym
liczba całkowita określająca podstawę, oraz numer jest liczbą o określonej podstawie. Dodatkowo,
liczby całkowite o podstawie 16 można określić, poprzedzając je znakiem „0x” (wielkość liter nie ma znaczenia) we wszystkich
formy wyrażeń arytmetycznych, z wyjątkiem argumentów numerycznych test wbudowane polecenie.
Poprzedzanie liczb jedyną cyfrą zero („0”) nie powoduje interpretacji jako ósemkowej, jak np
to niebezpieczne.

Jako specjalny mksz rozszerzenie, liczby o podstawie jedności są traktowane jako (8-bitowe
przezroczysty) Punkty kodowe ASCII lub Unicode, w zależności od powłoki tryb utf8 flaga (aktualna
ustawienie). Unix firmy AT&T ksh93 Obsługiwana jest także składnia „x” zamiast „1#x”. Notatka
że nie można użyć bajtów NUL (całkowita wartość zero). Nieustawiony lub pusty parametr
przyjmuje wartość 0 w kontekście liczb całkowitych. W trybie Unicode nieprzetworzone oktety są odwzorowywane na zakres
EF80..EFFF jak w OPTU-8, który znajduje się w PUA i został przydzielony przez CSUR do tego zastosowania. Jeśli
więcej niż jeden oktet w trybie ASCII lub sekwencja więcej niż jednego oktetu nie tworząca prawidłowego
i przekazano minimalną sekwencję CESU-8, zachowanie jest niezdefiniowane (zwykle powłoka przerywa działanie).
z błędem analizy, ale rzadko się to udaje, np. na sekwencji C2 20). Dlatego ty
powinien zawsze używać trybu ASCII, chyba że wiesz, że dane wejściowe są w poprawnym formacie UTF-8
zakresie 0000..FFFD, jeśli korzystasz z tej funkcji, w przeciwieństwie do czytać -a.

Operatorzy są oceniani w następujący sposób:

jednoargumentowy +
Wynik jest argumentem (uwzględnionym w celu zapewnienia kompletności).

jednoargumentowy -
Negacja.

! Logiczne NIE; wynikiem jest 1, jeśli argument ma wartość zero, 0, jeśli nie.

~ Arytmetyczne (bitowe) NIE.

++ Przyrost; należy zastosować do parametru (nie do literału ani innego wyrażenia).
Parametr jest zwiększany o 1. Wynik stosowany jako operator przedrostkowy
jest zwiększoną wartością parametru; gdy jest używany jako operator postfiksowy,
wynikiem jest pierwotna wartość parametru.

-- Podobny do ++, z tą różnicą, że parametr jest zmniejszany o 1.

, Oddziela dwa wyrażenia arytmetyczne; najpierw oceniana jest lewa strona,
potem prawo. Wynikiem jest wartość wyrażenia po prawej stronie
z boku.

= Przypisanie; zmienna po lewej stronie jest ustawiana na wartość po prawej stronie.

+= -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
Operatory przypisania.było><op>=expr> jest taki sam jakbyło>=było><op><expr>,
z dowolnym pierwszeństwem operatora wexpr> zakonserwowane. Na przykład „var1 *= 5 +
3” oznacza to samo, co określenie „var1 = var1 * (5 + 3)”.

|| Logiczne LUB; wynikiem jest 1, jeśli którykolwiek argument jest różny od zera, 0, jeśli nie. The
prawy argument jest oceniany tylko wtedy, gdy lewy argument ma wartość zero.

&& Logiczne AND; wynikiem jest 1, jeśli oba argumenty są niezerowe, 0, jeśli nie. The
prawy argument jest oceniany tylko wtedy, gdy lewy argument jest różny od zera.

| Arytmetyka (bitowa) LUB.

^ Arytmetyczny (bitowy) XOR (wyłączny OR).

& Arytmetyka (bitowa) ORAZ.

== Równe; wynikiem jest 1, jeśli oba argumenty są równe, 0, jeśli nie.

!= Nierówne; wynikiem jest 0, jeśli oba argumenty są równe, 1, jeśli nie.

< Mniej niż; wynikiem jest 1, jeśli lewy argument jest mniejszy niż prawy, 0, jeśli
nie.

<= > >=
Mniejszy lub równy, większy niż, większy lub równy. Widzieć <.

<<< >>>
Obróć w lewo (w prawo); wynik jest podobny do przesunięcia (patrz <<) z tą różnicą, że
bity przesunięte na jednym końcu są przesunięte na drugim końcu, zamiast zera
lub podpisz bity.

<< >> Przesuń w lewo (w prawo); wynikiem jest lewy argument z jego bitami przesuniętymi w lewo
(po prawej) o kwotę podaną w prawym argumencie.

+ - * /
Dodawanie, odejmowanie, mnożenie i dzielenie.

% Pozostała część; wynikiem jest symetryczna reszta z dzielenia lewej strony
argument prawicy. Aby uzyskać moduł matematyczny „a mod b”, użyj
formuła „(a % b + b) % b”.

<argument1>?argument2>:argument3>
Gdybyargument1> jest niezerowe, wynik jest takiargument2>; w przeciwnym razie wynik jest takiargument3>.
Argument niebędący wynikiem nie jest oceniany.

Współprocesy
Koproces (który jest potokiem utworzonym za pomocą operatora „|&”) jest procesem asynchronicznym
do którego powłoka może zarówno pisać (używając -p) i czytaj z (używając czytać -p). Wejście
a wynikami koprocesu można również manipulować za pomocą >&str i <&str przekierowania,
odpowiednio. Po rozpoczęciu wspólnego procesu nie można rozpocząć kolejnego, dopóki proces współbieżny nie zostanie rozpoczęty.
proces zakończy się lub dopóki wejście koprocesu nie zostanie przekierowane za pomocą polecenia exec n>&str
przekierowanie. Jeśli wejście koprocesu zostanie przekierowane w ten sposób, następnym koprocesem będzie
rozpoczęty będzie dzielić dane wyjściowe z pierwszym koprocesem, chyba że dane wyjściowe są początkowe
koproces został przekierowany przy użyciu pliku exec n<&str przekierowanie.

Kilka uwag dotyczących współprocesów:

· Jedynym sposobem na zamknięcie danych wejściowych koprocesu (aby koproces odczytał koniec pliku) jest
aby przekierować wejście do ponumerowanego deskryptora pliku, a następnie zamknąć ten deskryptor pliku:
exec 3>&p; exec 3>&-

· Aby koprocesy mogły mieć wspólne wyjście, powłoka musi zachować zapis
część rury wyjściowej jest otwarta. Oznacza to, że koniec pliku zostanie wykryty dopiero
wszystkie koprocesy współdzielące dane wyjściowe koprocesu zakończyły działanie (kiedy wszystkie wyjdą, plik
Shell zamyka swoją kopię potoku). Można tego uniknąć, przekierowując dane wyjściowe do a
numerowany deskryptor pliku (ponieważ powoduje to również zamknięcie kopii przez powłokę). Zauważ to
to zachowanie różni się nieco od oryginalnej powłoki Korna, która zamyka swoją kopię
części zapisu wyników koprocesu podczas ostatnio rozpoczętego koprocesu
(zamiast gdy wszystkie współprocesy udostępniania) kończą się.

· -p zignoruje sygnały SIGPIPE podczas zapisu, jeśli sygnał nie jest przechwytywany lub
ignorowane; to samo dotyczy sytuacji, gdy dane wejściowe współprocesu zostały zduplikowane do innego pliku
deskryptor i -un Jest używane.

Funkcje
Funkcje są definiowane przy użyciu powłoki Korna funkcjonować nazwa funkcji składnia lub
Powłoka Bourne’a/POSIX nazwa funkcji() składnia (patrz poniżej różnica między nimi
formy). Funkcje są w tym podobne do .-skryptów (tzn. skryptów pochodzących z wbudowanego '.').
są one wykonywane w bieżącym środowisku. Jednak w przeciwieństwie do skryptów .-skryptów, argumenty powłoki
(tzn. parametry pozycyjne $1, $2, itd.) nigdy nie są w nich widoczne. Kiedy skorupa jest
określając lokalizację polecenia, wyszukiwane są funkcje po specjalnych wbudowanych
poleceń, przed przeszukaniem wbudowanych i PATH.

Istniejącą funkcję można usunąć za pomocą rozbrojony -f nazwa funkcji. Lista funkcji może
uzyskać za pomocą skład +f a definicje funkcji można wyświetlić za pomocą skład -f.
Połączenia automatyczne ładowanie polecenie (które jest aliasem dla skład -fu) można wykorzystać do utworzenia niezdefiniowanego
funkcje: gdy wykonywana jest niezdefiniowana funkcja, powłoka przeszukuje ścieżkę określoną w
parametr FPATH dla pliku o tej samej nazwie co funkcja, która, jeśli zostanie znaleziona, zostanie odczytana
i stracony. Jeżeli po wykonaniu pliku okaże się, że nazwana funkcja jest zdefiniowana, zostanie wyświetlony plik
funkcja jest wykonywana; w przeciwnym razie kontynuowane jest normalne wyszukiwanie poleceń (tj. powłoki
przeszukuje zwykłą wbudowaną tabelę poleceń i PATH). Należy pamiętać, że jeśli polecenie nie zostanie znalezione
przy użyciu PATH, podejmowana jest próba automatycznego załadowania funkcji przy użyciu FPATH (jest to nieudokumentowany plik
cecha oryginalnej muszli Korna).

Funkcje mogą mieć dwa atrybuty, „trace” i „export”, za pomocą których można je ustawić skład -ft
i skład -fxodpowiednio. Kiedy wykonywana jest śledzona funkcja, powłoka xtras
opcja jest włączona na czas trwania funkcji. Atrybutem „eksportu” funkcji jest
obecnie nie używany. W oryginalnej powłoce Korna wyeksportowane funkcje są widoczne dla powłoki
skrypty, które są wykonywane.

Ponieważ funkcje są wykonywane w bieżącym środowisku powłoki, dokonano przypisań parametrów
funkcje wewnętrzne są widoczne po zakończeniu funkcji. Jeśli nie jest to pożądane
efekt, skład polecenia można użyć wewnątrz funkcji w celu utworzenia parametru lokalnego. Notatka
ten AT&T UNIX ksh93 wykorzystuje zakres statyczny (jeden zakres globalny, jeden zakres lokalny na funkcję)
i dopuszcza zmienne lokalne tylko w funkcjach w stylu Korna, natomiast mksz wykorzystuje dynamiczne określanie zakresu
(zagnieżdżone zakresy o różnej lokalizacji). Należy pamiętać, że parametry specjalne (np $$, $!) nie może być
zakres w ten sposób.

Status wyjścia funkcji to status ostatniego polecenia wykonanego w funkcji. A
funkcję można zakończyć natychmiast za pomocą opcji powrót Komenda; można to również wykorzystać
aby jawnie określić status wyjścia.

Funkcje zdefiniowane za pomocą funkcjonować słowa zastrzeżone są poniżej traktowane odmiennie
sposoby od funkcji zdefiniowanych za pomocą () notacja:

· Parametr $0 jest ustawiony na nazwę funkcji (funkcje w stylu Bourne'a pozostawiają $0
nietknięty).

· Przypisania parametrów poprzedzające wywołania funkcji nie są przechowywane w środowisku powłoki
(wykonanie funkcji w stylu Bourne'a spowoduje zachowanie przypisań).

· OPTIND jest zapisywany/resetowany i przywracany przy wejściu i wyjściu z funkcji tzw getopty może być
użyte prawidłowo zarówno wewnątrz, jak i na zewnątrz funkcji (funkcje w stylu Bourne'a opuszczają OPTIND
nietknięty, więc używam getopty wewnątrz funkcji przeszkadza w użyciu getopty na zewnątrz
funkcjonować).

· Opcje powłoki (zestaw -o) mają zasięg lokalny, tj. zmiany wewnątrz funkcji są resetowane
To jest wyjście.

W przyszłości mogą zostać dodane również następujące różnice:

· Podczas wykonywania funkcji używane będzie oddzielne środowisko pułapek/sygnałów. Ten
będzie oznaczać, że pułapki ustawione wewnątrz funkcji nie będą miały wpływu na pułapki i sygnały powłoki
które nie są ignorowane w powłoce (ale mogą zostać uwięzione), będą miały domyślny efekt
funkcja.

· Pułapka EXIT, jeśli jest ustawiona w funkcji, zostanie wykonana po powrocie funkcji.

Command egzekucja
Po ocenie argumentów wiersza poleceń, przekierowań i przypisań parametrów plik
określany jest typ polecenia: specjalne polecenie wbudowane, funkcja, normalne polecenie wbudowane lub
nazwa pliku do wykonania, znaleziona przy użyciu parametru PATH. Kontrole przeprowadzane są w
powyżej zamówienia. Specjalne polecenia wbudowane różnią się od innych poleceń tym, że PATH
parametr nie jest używany do ich wyszukiwania, błąd podczas ich wykonywania może spowodować nie-
interaktywna powłoka do wyjścia oraz przypisania parametrów określone przed poleceniem
są zachowywane po zakończeniu polecenia. Zwykłe wbudowane polecenia różnią się tylko tym
do ich znalezienia nie używa się parametru PATH.

Oryginał ksh i POSIX różnią się nieco pod względem tego, które polecenia są uważane za specjalne, lub
regulować

Specjalne wbudowane narzędzia POSIX:

., :, złamać, kontynuować, eval, exec, wyjście, eksport, tylko czytać, powrót, zestaw, przesunięcie, czasy, pułapka,
rozbrojony

Dodatkowy mksz polecenia zachowujące przypisania:

wbudowany, światowy, źródło, skład, czekać

Wbudowane elementy, które nie są specjalne:

[, alias, bg, związania, jak, cd, komenda, przegapić, fałszywy, fc, fg, getopty, Oferty pracy, zabić, niech, ,
Pwd, czytać, prawdziwa ścieżka, przemianować, spać, zawieszać, test, prawdziwy, ulimit, umaska, alias, skąd

Po ustaleniu typu polecenia wszelkie przypisania parametrów wiersza poleceń są usuwane
wykonywane i eksportowane na czas trwania polecenia.

Poniżej opisano specjalne i regularne polecenia wbudowane oraz polecenia wbudowane podobne do zarezerwowanych
słowa:

. filet [arg ...]
Nazywa się to poleceniem „kropka”. Wykonaj polecenia w filet w aktualnej
środowisko. Plik jest wyszukiwany w katalogach PATH. Jeśli argumenty są
biorąc pod uwagę parametry pozycyjne, można uzyskać do nich dostęp while filet jest bycie
wykonany. Jeśli nie podano żadnych argumentów, parametrami pozycyjnymi są parametry
środowisko, w którym polecenie jest używane.

: [...]
Polecenie zerowe. Status wyjścia jest ustawiony na zero.

[ wyrażenie ]
See test.

alias [-d | -t [-r] | +-x] [-p] [+] [Nazwa [=wartość] ...]
Bez argumentów, alias wyświetla listę wszystkich aliasów. Dla dowolnej nazwy bez wartości,
istniejący alias zostanie wyświetlony. Dowolna nazwa posiadająca wartość definiuje alias (patrz Pseudonimy
powyżej).

Podczas wyświetlania aliasów używany jest jeden z dwóch formatów. Zwykle aliasy są wymienione jako
Nazwa=wartość, Gdzie wartość jest cytowany. Jeśli opcje były poprzedzone znakiem „+” lub pojedynczym „+”
jest podawany wyłącznie w wierszu poleceń Nazwa jest drukowany.

Połączenia -d opcja powoduje wyświetlenie listy aliasów katalogów używanych przy rozwijaniu tyldy
lub ustaw (patrz Tylda ekspansja powyżej).

Jeśli -p używana jest opcja, każdy alias jest poprzedzony ciągiem „alias ”.

Połączenia -t Opcja wskazuje, że śledzone aliasy mają być wyszczególnione/ustawione (określone wartości
w wierszu poleceń są ignorowane w przypadku śledzonych aliasów). The -r opcja to wskazuje
wszystkie śledzone aliasy mają zostać zresetowane.

Połączenia -x zestawy opcji (+x czyści) atrybut eksportu aliasu lub, jeśli nie ma nazw
podany, wyświetla listę aliasów z atrybutem eksportu (eksportowanie aliasu nie ma
efekt).

bg [praca ...]
Wznów określone zatrzymane zadania w tle. Jeśli nie określono żadnego zadania, %+
zakłada się. Widzieć Praca kontrola poniżej, aby uzyskać więcej informacji.

związania [-l]
Wyświetlone zostaną aktualne powiązania. Jeśli -l flaga jest podana, związania zamiast tego wymienia
nazwy funkcji, z którymi można powiązać klucze. Widzieć Emacs redagowanie tryb więcej
informacje.

związania [-m] ciąg=[zastąpić] ...
związania ciąg=[polecenie edycji] ...
Określone polecenie edycji jest powiązane z podanym ciąg, który powinien składać się z
znak kontrolny opcjonalnie poprzedzony jednym z dwóch znaków przedrostka i
opcjonalnie poprzedzony znakiem tyldy. Przyszłe wejście ciąg spowoduje
polecenie edycji, które należy natychmiast wywołać. Jeśli -m flaga jest podana, określona
wkład ciąg zostaną następnie natychmiast zastąpione przez dane zastąpić ciąg
które mogą zawierać polecenia edycji, ale nie inne makra. Jeśli postfiks tyldy to
podany, tylda kończąca jeden lub dwa przedrostki i znak kontrolny są ignorowane,
każdy inny znak końcowy zostanie przetworzony później.

Znaki kontrolne można zapisywać przy użyciu notacji karetki, np. ^X oznacza Ctrl-X.
Należy pamiętać, że chociaż obsługiwane są tylko dwa znaki przedrostka (zwykle ESC i ^X),
obsługiwane mogą być niektóre sekwencje wieloznakowe.

Poniższe domyślne powiązania pokazują, jak działają klawisze strzałek, klawisz Home, End i Delete
na terminalu ekranowym BSD wsvt25, xterm-xfree86 lub GNU są powiązane (oczywiście niektóre
sekwencje ucieczki nie będą działać tak dobrze):

powiązanie '^X'=przedrostek-2
powiąż '^[['=przedrostek-2
bind '^XA'=historia up
bind '^XB'=historia w dół
bind '^XC'=znak-do przodu
bind '^XD'=znak wsteczny
bind '^X1~'=początek linii
bind '^X7~'=początek linii
bind '^XH'=początek linii
bind '^X4~'=koniec linii
bind '^X8~'=koniec linii
bind '^XF'=koniec linii
bind '^X3~'=usuń-znak-do przodu

złamać [poziom]
Wyjdź z poziomnajbardziej wewnętrzny dla, wybierać, aż dolub Podczas pętla. poziom domyślnie 1.

wbudowany [--] komenda [arg ...]
Wykonaj wbudowane polecenie komenda.

jak [-u] [filet ...]
Czytaj pliki sekwencyjnie, w kolejności wiersza poleceń i zapisz je na standardowe wyjście.
Jeśli filet jest pojedynczym myślnikiem („-”) lub go nie ma, czytane ze standardowego wejścia. Bezpośrednio
wbudowane wywołania, POSIX -u opcja jest obsługiwana jako nieoperacyjna. W przypadku połączeń z powłoki, jeśli
podano wszelkie opcje, zewnętrzne jak(1) preferowane jest narzędzie zamiast wbudowanego.

cd [-L] [reż]
cd -P [-e] [reż]
chdir [-eLP] [reż]
Ustaw katalog roboczy na reż. Jeśli ustawiony jest parametr CDPATH, wyświetlana jest lista
ścieżka wyszukiwania katalogu zawierającego reż. Ścieżka NULL oznacza prąd
informator. Gdyby reż można znaleźć w dowolnym komponencie ścieżki wyszukiwania CDPATH innym niż
NULL ścieżka, nazwa nowego katalogu roboczego zostanie wypisana na standardowe wyjście.
If reż brakuje, używany jest katalog domowy HOME. Jeśli reż to „-”, poprzedni
używany jest katalog roboczy (patrz parametr OLDPWD).

Jeśli -L używana jest opcja (ścieżka logiczna) lub jeśli fizyczny opcja nie jest ustawiona (zobacz
zestaw polecenie poniżej), odniesienia do „..” w reż są względne w stosunku do ścieżki, do której się dostać
katalog. Jeśli -P używana jest opcja (ścieżka fizyczna) lub jeśli fizyczny Jest opcja
set, „..” odnosi się do drzewa katalogów systemu plików. PWD i OLDPWD
parametry są aktualizowane w celu odzwierciedlenia bieżącego i starego katalogu roboczego,
odpowiednio. Jeśli -e opcja jest ustawiona na przechodzenie przez fizyczny system plików i PWD
nie można ustawić, kod wyjścia to 1; większa niż 1, jeśli wystąpił błąd, 0
Inaczej.

cd [-eLP] stary nowa
chdir [-eLP] stary nowa
Ciąg znaków nowa jest zastępowany stary w bieżącym katalogu i powłoce
próbuje przejść do nowego katalogu.

komenda [-pVv] cmd [arg ...]
Jeśli żadne -v ani -V podana jest opcja, cmd jest wykonywane dokładnie tak, jak gdyby komenda miał
nie zostało określone, z dwoma wyjątkami: po pierwsze, cmd nie może być funkcją powłoki; I
po drugie, specjalne wbudowane polecenia tracą swoją specjalność (tj. przekierowanie i
błędy narzędzi nie powodują zamknięcia powłoki, podobnie jak przypisanie poleceń nie
stały).

Jeśli -p podana jest opcja, zamiast bieżącej wartości używana jest domyślna ścieżka wyszukiwania
PATH, którego rzeczywista wartość zależy od systemu.

Jeśli -v podana jest opcja zamiast wykonania cmd, informacje o tym, co by było
wykonanie jest podane (i to samo jest robione dla arg ...). Dla wbudowanych funkcji i
słowa kluczowe, ich nazwy są po prostu drukowane; w przypadku aliasów poleceniem je definiującym jest
drukowane; w przypadku narzędzi znalezionych poprzez przeszukanie parametru PATH, pełna ścieżka pliku
polecenie zostanie wydrukowane. Jeśli nie zostanie znalezione żadne polecenie (tj. wyszukiwanie ścieżki nie powiedzie się), nic nie zostanie znalezione
drukowane i komenda kończy się ze statusem niezerowym. The -V opcja jest jak -v
opcja, z wyjątkiem tego, że jest bardziej gadatliwa.

kontynuować [poziom]
Przeskakuje na początek poziomnajbardziej wewnętrzny dla, wybierać, aż dolub Podczas pętla.
poziom domyślnie 1.

przegapić [-A] [arg ...]
Ostrzeżenie: to narzędzie nie jest przenośne; użyj wbudowanej powłoki Korna zamiast.

Wypisuje swoje argumenty (oddzielone spacjami), po których następuje znak nowej linii, zgodnie ze standardem
wyjście. Znak nowej linii jest pomijany, jeśli którykolwiek z argumentów zawiera ukośnik odwrotny
sekwencja „\c”. Zobacz polecenie poniżej, aby wyświetlić listę innych sekwencji ukośników odwrotnych
które są uznawane.

Opcje zapewniają zgodność ze skryptami powłoki BSD. The -n opcja
pomija końcowy znak nowej linii, -e umożliwia interpretację ukośnika odwrotnego (nie ma opcji, ponieważ
jest to zwykle wykonywane) oraz -E pomija interpretację ukośnika odwrotnego.

Jeśli posix or sh opcja jest ustawiona lub jest to bezpośrednie wywołanie wbudowane, tylko pierwsze
argument jest traktowany jako opcja i tylko wtedy, gdy jest dokładnie „-n”. Ukośnik wsteczny
interpretacja jest wyłączona.

eval komenda ...
Argumenty są łączone (ze spacjami między nimi) w celu utworzenia pojedynczego ciągu
które powłoka następnie analizuje i wykonuje w bieżącym środowisku.

exec [-a argv0] [-c] [komenda [arg ...]]
Polecenie jest wykonywane bez rozwidlania, zastępując proces powłoki. To jest
obecnie absolutne, tj exec nigdy nie wraca, nawet jeśli komenda nie znaleziono. The
-a opcja pozwala ustawić inną wartość argv[0], oraz -c oczyszcza środowisko
przed wykonaniem procesu potomnego, z wyjątkiem zmiennej _ i przypisań bezpośrednich.

Jeśli nie zostanie wydane żadne polecenie poza przekierowaniem we/wy, przekierowanie we/wy będzie trwałe
i skorupa nie jest wymieniana. Wszystkie deskryptory plików większe niż 2, które są otwarte
or dup(2) wykonane w ten sposób nie są udostępniane innym wykonywanym poleceniom (tj
polecenia, które nie są wbudowane w powłokę). Należy zauważyć, że powłoka Bourne’a jest inna
Tutaj; przekazuje te deskryptory plików dalej.

wyjście [status]
Powłoka kończy działanie z określonym statusem wyjścia. Jeśli status nie jest określony, wyjście
status to bieżąca wartość $? parametr.

eksport [-p] [parametr[=wartość]]
Ustawia atrybut eksportu nazwanych parametrów. Eksportowane parametry są przekazywane
środowisko do wykonywanych poleceń. Jeśli określono wartości, nazwane parametry
są również przypisane.

Jeśli nie określono żadnych parametrów, zostaną użyte wszystkie parametry z ustawionym atrybutem eksportu
drukowane po jednym w wierszu; albo ich nazwy, albo, jeśli jest to „-” bez litery opcji
określone, pary nazwa=wartość lub, with -p, eksport polecenia odpowiednie do ponownego wejścia.

fałszywy Polecenie, które kończy się ze statusem niezerowym.

fc [-e redaktor | -l [-n]] [-r] [ drugim [trwać]]
drugim i trwać wybierz polecenia z historii. Polecenia można wybierać według historii
liczba (liczby ujemne cofają się od bieżącej, ostatniej linii) lub a
ciąg określający najnowsze polecenie rozpoczynające się od tego ciągu. The -l opcja
wyświetla polecenie na standardowym wyjściu, oraz -n blokuje domyślne numery poleceń.
Połączenia -r opcja odwraca kolejność listy. Bez -l, wybrane polecenia są
edytowane przez edytora określonego za pomocą -e opcję, lub jeśli nie -e jest określony,
edytor określony parametrem FCEDIT (jeżeli parametr ten nie jest ustawiony, /bin/wyd is
używany), a następnie wykonywany przez powłokę.

fc -e - | -s [-g] [stary=nowa] [prefiks]
Po wykonaniu wykonaj ponownie wybrane polecenie (domyślnie poprzednie polecenie).
opcjonalne podstawienie stary w nowa. Jeśli -g jest określony, wszystkie wystąpienia
stary są zastąpione przez nowa. Znaczenie -e - i -s jest identyczny: wykonaj ponownie
wybrane polecenie bez wywoływania edytora. Dostęp do tego polecenia zwykle uzyskuje się za pomocą
predefiniowane: alias r='fc -e -'

fg [praca ...]
Wznów określone zadania na pierwszym planie. Jeśli nie określono żadnego zadania, %+ is
przypuszczalny. Widzieć Praca kontrola poniżej, aby uzyskać więcej informacji.

getopty ciąg znaków Nazwa [arg ...]
Używane przez procedury powłoki do analizowania określonych argumentów (lub parametrów pozycyjnych,
jeśli nie podano żadnych argumentów) i sprawdzenie możliwości prawnych. ciąg znaków zawiera
litery opcji, które getopty jest rozpoznać. Jeśli po literze następuje dwukropek, oznacza to
oczekuje się, że opcja będzie miała argument. Mogą to być opcje, które nie przyjmują argumentów
zgrupowane w jednym argumencie. Jeśli opcja przyjmuje argument i opcję
znak nie jest ostatnim znakiem argumentu, w którym się znajduje, pozostała część
argument przyjmuje się jako argument opcji; w przeciwnym razie następnym argumentem jest
argument opcji.

Za każdym razem getopty zostanie wywołany, umieszcza następną opcję w parametrze powłoki Nazwa
oraz indeks argumentu, który ma zostać przetworzony przez następne wywołanie getopty
parametr powłoki OPTIND. Jeżeli opcja została wprowadzona z "+", opcja jest umieszczana
in Nazwa jest poprzedzony znakiem „+”. Gdy opcja wymaga argumentu, getopty miejsc
go w parametrze powłoki OPTARG.

W przypadku napotkania niedozwolonej opcji lub brakującego argumentu opcji pojawia się znak zapytania
lub wstawiony jest dwukropek Nazwa (wskazując niedozwoloną opcję lub brakujący argument,
odpowiednio), a OPTARG jest ustawiony na znak opcji, który spowodował problem.
Ponadto, jeżeli ciąg znaków nie zaczyna się od dwukropka, umieszcza się znak zapytania
Nazwa, OPTARG jest rozbrojony, a komunikat o błędzie jest drukowany jako błąd standardowy.

Po napotkaniu końca opcji, getopty wychodzi z niezerowym wyjściem
status. Opcje kończą się pierwszym argumentem (nie będącym opcją), który się nie rozpoczyna
z „-” lub gdy napotkany zostanie argument „--”.

Analizowanie opcji można zresetować, ustawiając OPTIND na 1 (odbywa się to automatycznie
za każdym razem, gdy wywoływana jest powłoka lub procedura powłoki).

Ostrzeżenie: Zmiana wartości parametru powłoki OPTIND na wartość inną niż 1 lub
analizowanie różnych zestawów argumentów bez resetowania OPTIND może prowadzić do nieoczekiwanych sytuacji
wyników.

światowy ...
See skład.

haszysz [-r] [Nazwa ...]
Bez argumentów wyświetlane są wszystkie zaszyfrowane nazwy ścieżek poleceń wykonywalnych. The -r opcja
powoduje usunięcie wszystkich zaszyfrowanych poleceń z tablicy mieszającej. Każdy Nazwa jest przeszukiwany
tak, jakby była to nazwa polecenia i dodawana do tablicy mieszającej, jeśli jest to plik wykonywalny
dowództwo.

Oferty pracy [-np] [praca ...]
Wyświetlanie informacji o określonych zadaniach; jeśli nie określono żadnych zadań, wszystkie zadania
są wyświetlane. The -n Opcja powoduje wyświetlenie informacji tylko dla zadań, które
zmieniły stan od ostatniego powiadomienia. Jeśli -l używana jest opcja,
Wyświetlany jest także identyfikator procesu każdego procesu w zadaniu. The -p opcja powoduje tylko
grupę procesów każdego zadania, które ma zostać wydrukowane. Widzieć Praca kontrola poniżej w formacie praca
i wyświetlane zadanie.

zabić [-s znak | -znak | -znak] { praca | Pid | pgrp } ...
Wyślij określony sygnał do określonych zadań, identyfikatorów procesów lub grup procesów. Jeśli
nie określono żadnego sygnału, wysyłany jest sygnał TERM. Jeśli określono zadanie, sygnał
jest wysyłany do grupy procesów zadania. Widzieć Praca kontrola poniżej w formacie praca.

zabić -l [status wyjścia ...]
Wydrukuj nazwę sygnału odpowiadającą status wyjścia. Jeżeli nie podano żadnych argumentów, a
drukowana jest lista wszystkich sygnałów, ich numery i krótki opis.

niech [wyrażenie ...]
Każde wyrażenie jest oceniane (patrz Arytmetyka wyrażeń powyżej). Jeśli wszystkie wyrażenia
zostały pomyślnie ocenione, status wyjścia wynosi 0 (1), jeśli zostało ocenione ostatnie wyrażenie
do wartości niezerowej (zero). Jeśli podczas analizowania lub oceny pliku wystąpi błąd
wyrażenie, status wyjścia jest większy niż 1. Ponieważ wyrażenia mogą wymagać
cytowane, (( expr )) jest cukrem syntaktycznym dla { niech 'expr'; }.

pozwalać] Wewnętrznie używany alias dla niech.

mknod [-m tryb] Nazwa b|c poważny moll
mknod [-m tryb] Nazwa p
Utwórz specjalny plik urządzenia. Typ pliku może być b (urządzenie blokowe), c
(urządzenie znakowe) lub p (nazwany potok, FIFO). Utworzony plik można modyfikować
zgodnie z jego tryb (za pośrednictwem -m opcja), poważny (główny numer urządzenia) oraz moll
(drobny numer urządzenia). Zwykle nie jest to część mksz; jednakże dystrybutorzy mogą
dodałem to jako wbudowane jako speed hack.

[-nprsu[n] | -R [-en]] [argument ...]
wypisuje swoje argumenty na standardowe wyjście, oddzielone spacjami i zakończone
z nową linią. The -n opcja pomija znak nowej linii. Domyślnie niektóre C uciekają
są tłumaczone. Należą do nich te wymienione w Ukośnik wsteczny ekspansja powyżej również
jako „\c”, co jest równoznaczne z użyciem -n opcja. Może być rozwinięcie ukośnika odwrotnego
zahamowany przez -r opcja. -s opcja drukuje do pliku historii zamiast
standardowe wyjście; the -u opcja drukuje do deskryptora pliku n (n domyślnie 1 jeśli
pominięty); i -p opcja wypisuje do koprocesu (patrz Współprocesy powyżej).

Połączenia -R Opcja służy do emulacji, w pewnym stopniu, BSD przegapić(1) polecenie, które to robi
nie przetwarzać sekwencji „\”, chyba że -e opcja jest podana. Jak wyżej, -n opcja
pomija końcowy znak nowej linii.

printf format [argumenty ...]
Sformatowane wyjście. Mniej więcej tyle samo co printf(1), użyteczność, z wyjątkiem tego, że używa
to samo Ukośnik wsteczny ekspansja i kod we/wy i nie obsługuje zmiennoprzecinkowego jako
reszta mksz. Preferowane jest narzędzie zewnętrzne zamiast wbudowanego. To nie jest
zwykle część mksz; jednak dystrybutorzy mogli dodać to jako wbudowane jako plik
szybkie hackowanie. Nie używaj w nowym kodzie.

Pwd [-LP]
Wydrukuj bieżący katalog roboczy. Jeśli -L opcja jest używana lub jeśli fizyczny
opcja nie jest ustawiona (zobacz zestaw polecenie poniżej), drukowana jest ścieżka logiczna (tzn
ścieżka, do której przywykłeś cd do bieżącego katalogu). Jeśli -P używana jest opcja (ścieżka fizyczna).
lub jeśli fizyczny opcja jest ustawiona, ścieżka określona na podstawie systemu plików (wg
następujące katalogi „..” do katalogu głównego).

czytać [-A | -a] [-d x] [-N z | -n z] [-p | -u[n]] [-t n] [-rs] [p ...]
Odczytuje wiersz wejściowy, dzieli dane wejściowe na pola za pomocą parametru IFS (patrz
Podstawienie powyżej) i przypisuje każdemu polu określone parametry p, Jeśli nie
parametry są określone, parametr REPLY służy do przechowywania wyniku. Z
-A i -a opcji, akceptowany jest tylko żaden parametr lub jeden parametr. Jeśli jest ich więcej
parametry niż pola, dodatkowe parametry są ustawiane na pusty ciąg znaków lub 0; Jeśli
pól jest więcej niż parametrów, ostatni parametr ma przypisany pozostały
pola (w tym separatory słów).

Opcje są następujące:

-A Zapisz wynik w parametrze p (lub ODPOWIEDŹ) jako tablica słów.

-a Zapisz wynik bez dzielenia słów na parametr p (lub ODPOWIEDŹ) jako
tablica znaków (szerokie znaki, jeśli tryb utf8 opcja została wprowadzona,
oktety w przeciwnym razie); punkty kodowe są domyślnie kodowane jako liczby dziesiętne.

-d x Użyj pierwszego bajtu x, NUL, jeśli jest pusty, zamiast znaku nowej linii ASCII
jako ogranicznik linii wejściowej.

-N z Zamiast czytać do końca, czytaj dokładnie z bajty. Jeśli EOF lub a
nastąpi przekroczenie limitu czasu, zwracany jest częściowy odczyt ze statusem wyjścia 1.

-n z Zamiast czytać do końca, przeczytaj do z bajtów, ale wróć tak szybko, jak to możliwe
odczytywane są dowolne bajty, np. z wolnego urządzenia końcowego, w przypadku EOF lub przekroczenia limitu czasu
występuje.

-p Przeczytaj aktualnie aktywny koproces, patrz Współprocesy powyżej, aby poznać szczegóły
na to.

-u[n] Odczytaj z deskryptora pliku n (domyślnie jest to 0, tj. standardowe wejście). The
argument musi następować bezpośrednio po znaku opcji.

-t n Przerwij czytanie po n sekundy (określone jako dodatnia wartość dziesiętna z rozszerzeniem
opcjonalna część ułamkowa). Stan wyjścia czytać wynosi 1, jeśli przekroczony został limit czasu
wystąpiło, ale częściowe odczyty mogą nadal zostać zwrócone.

-r Zwykle znak odwrotnego ukośnika ASCII nie ma specjalnego znaczenia
następujący znak i jest usuwany z wejścia; czytać nie przestaje kiedy
napotkał sekwencję ukośnika odwrotnego i nowej linii i nie zapisuje w niej tej nowej linii
wynik. Ta opcja włącza tryb surowy, w którym nie ma ukośników odwrotnych
obrobiony.

-s Linia wejściowa zostaje zapisana w historii.

Jeśli wejściem jest terminal, oba -N i -n opcje ustawiają go w tryb surowy; Oni
przeczytaj cały plik, jeśli -1 zostanie przekazane jako z argumenty.

Do pierwszego parametru może być dołączony znak zapytania i ciąg znaków, w którym
w przypadku, gdy ciąg znaków jest używany jako zachęta (wypisywany do standardowego błędu przed wprowadzeniem jakichkolwiek danych wejściowych
czytać), jeśli dane wejściowe to a tty(4) (np czytać nfoo?'numer of fos: ').

Jeśli nie zostanie odczytane żadne wejście lub upłynął limit czasu, czytać kończy się ze statusem niezerowym.

Kolejny przydatny zestaw sztuczek: Jeśli czytać jest uruchamiany w pętli, np Podczas czytać bla; do ...;
zrobić wówczas wiodące białe znaki zostaną usunięte (IFS) i przetworzone ukośniki odwrotne. Ty
może chcieć użyć Podczas IFS= czytać -r bla; do ...; zrobić dla nieskazitelnych wejść/wyjść. Podobnie,
podczas korzystania z -a opcja, skorzystaj z -r opcja może być rozważna; to samo dotyczy
do:

znajdować . -type f -print0 |& \
podczas gdy IFS= czytaj -d '' -pr nazwa pliku; Do
print -r -- "znaleziono <${nazwa_pliku#./}>"
zrobić

Wewnętrzna pętla zostanie wykonana w podpowłoce i nie można wprowadzać zmian w zmiennych
propagowane, jeśli są wykonywane w potoku:

pasek | baza | podczas czytania foo; Do ...; zrobione

Zamiast tego użyj współprocesów:

pasek | baza |&
podczas czytania -p foo; Do ...; zrobione
wykonanie 3>&p; wykonanie 3>&-

tylko czytać [-p] [parametr [=wartość] ...]
Ustawia atrybut tylko do odczytu nazwanych parametrów. Jeżeli podane są wartości,
parametry są na nie ustawiane przed ustawieniem atrybutu. Po utworzeniu parametru
tylko do odczytu, nie można go rozbroić ani zmienić jego wartości.

Jeśli nie określono żadnych parametrów, nazwy wszystkich parametrów mają charakter tylko do odczytu
atrybuty są drukowane po jednym w każdym wierszu, chyba że -p używana jest opcja, w takim przypadku
tylko czytać polecenia definiujące wszystkie parametry tylko do odczytu, łącznie z ich wartościami
drukowane.

prawdziwa ścieżka [--] Nazwa
Drukuje rozpoznaną bezwzględną ścieżkę odpowiadającą Nazwa. Jeśli Nazwa kończy się na
ukośnik („/”), sprawdzane jest także, czy istnieje i czy jest to katalog;
Inaczej, prawdziwa ścieżka zwraca 0, jeśli ścieżka istnieje lub można ją utworzyć
natychmiast, tj. wszystkie oprócz ostatniego komponentu istnieją i są katalogami.

przemianować [--] od do
Zmienia nazwę pliku od do do. Obie muszą mieć pełne nazwy ścieżek i znajdować się na tym samym urządzeniu.
Ta wbudowa jest przeznaczona do stosowania w sytuacjach awaryjnych, gdzie /bin/mv staje się bezużyteczny i
bezpośrednio dzwoni przemianować(2).

powrót [status]
Zwraca funkcję lub . skrypt ze statusem wyjścia status, Jeśli nie status jest podawany,
używany jest status wyjścia ostatnio wykonanego polecenia. Jeśli jest używany poza funkcją
or . skrypt, ma taki sam efekt jak wyjście, Należy pamiętać, że mksz traktuje zarówno profil, jak i
Pliki ENV jako . skrypty, podczas gdy oryginalna powłoka Korna traktuje profile tylko jako .
skrypty.

zestaw [+-abCefhiklmnprsUuvXx] [+-o opcja] [+-A Nazwa] [--] [arg ...]
Połączenia zestaw polecenie może zostać użyte do ustawienia (-) lub jasne (+) opcje powłoki, ustaw positional
parametrów lub ustawić parametr tablicy. Opcje można zmienić za pomocą przycisku +-o opcja
składnia, gdzie opcja to długa nazwa opcji lub użycie +-list składnia,
gdzie list to jednoliterowa nazwa opcji (nie wszystkie opcje mają pojedynczą literę
nazwa). W poniższej tabeli wymieniono zarówno litery opcji (jeśli istnieją), jak i długie nazwy
wraz z opisem działania opcji:

-A Nazwa
Ustawia elementy parametru tablicy Nazwa do arg ... If -A Jest używany,
tablica jest najpierw resetowana (tzn. opróżniana); Jeśli +A jest używany, ustawianych jest pierwszych N elementów
(gdzie N jest liczbą argumentów); reszta pozostaje nietknięta.

Alternatywna składnia polecenia zestaw -A bla -- a b c który jest kompatybilny
GNU bash a także obsługiwany przez AT&T UNIX ksh93 jest: foo=(a b C); foo+=(zm e)

-a | -o alleksport
Wszystkie nowe parametry tworzone są z atrybutem eksportu.

-b | -o powiadom
Drukuj powiadomienia o zadaniach asynchronicznie, zamiast tuż przed
podpowiedź. Używane tylko wtedy, gdy włączona jest kontrola zadań (-m).

-C | -o nocnik
Zapobiegaj > przekierowaniu przed zastąpieniem istniejących plików. Zamiast tego >| musi być użyte
aby wymusić nadpisanie. Należy pamiętać, że nie jest to bezpieczne użycie do tworzenia
pliki tymczasowe lub pliki blokujące z powodu TOCTOU podczas kontroli umożliwiającej przekierowanie
wyjście do / dev / null lub inne pliki urządzenia, nawet w formacie nocnik tryb.

-e | -o błąd
Wyjdź (po wykonaniu pułapki ERR) natychmiast po wystąpieniu błędu lub polecenia
kończy się niepowodzeniem (tzn. kończy się ze statusem niezerowym). Nie dotyczy to poleceń
którego status wyjścia jest jawnie testowany przez konstrukcję powłoki, taką jak if, aż do,
Podczaslub ! sprawozdania. Dla && lub ||, tylko status ostatniego polecenia to
przetestowany.

-f | -o noglob
Nie rozwijaj wzorców nazw plików.

-h | -o trackall
Utwórz śledzone aliasy dla wszystkich wykonanych poleceń (patrz Pseudonimy powyżej). Włączony
domyślnie dla powłok nieinteraktywnych.

-i | -o interaktywne
Powłoka jest powłoką interaktywną. Opcji tej można użyć tylko w przypadku powłoki
jest wywoływany. Powyżej opisano, co to oznacza.

-k | -o keyword
Przypisania parametrów są rozpoznawane w dowolnym miejscu polecenia.

-l | -o Zaloguj Się
Powłoka jest powłoką logowania. Tej opcji można użyć tylko wtedy, gdy powłoka jest
wywołany. Powyżej opisano, co to oznacza.

-m | -o monitor
Włącz kontrolę zadań (domyślnie dla powłok interaktywnych).

-n | -o noexec
Nie wykonuj żadnych poleceń. Przydatne do sprawdzania składni skryptów (ignorowane
jeśli jest interaktywny).

-p | -o uprzywilejowany
Powłoka jest uprzywilejowaną powłoką. Jest ustawiany automatycznie, jeśli, kiedy powłoka
rozpoczyna się, rzeczywisty UID lub GID nie jest zgodny z efektywnym UID (EUID) lub GID
(EGID). Powyżej opisano, co to oznacza.

-r | -o ograniczony
Powłoka jest powłoką ograniczoną. Tej opcji można użyć tylko wtedy, gdy powłoka jest
wywołany. Powyżej opisano, co to oznacza.

-s | -o stdin
Jeśli zostanie użyte podczas wywoływania powłoki, polecenia są odczytywane ze standardowego wejścia. Ustawić
automatycznie, jeśli powłoka zostanie wywołana bez argumentów.

Kiedy -s jest używany z zestaw polecenie powoduje, że określone argumenty zostaną określone
sortowane przed przypisaniem ich do parametrów pozycyjnych (lub do array NazwaJeśli
-A jest używany).

-U | -o tryb utf8
Włącz obsługę UTF-8 w pliku Emacs redagowanie tryb i wewnętrzna obsługa ciągów
Funkcje. Ta flaga jest domyślnie wyłączona, ale można ją włączyć, ustawiając ją
w wierszu poleceń powłoki; jest włączany automatycznie dla powłok interaktywnych, jeśli
wymagane w czasie kompilacji, obsługuje twój system ustaw język(LC_CTYPE, "") i
opcjonalnie nl_langinfo(ZESTAW KODÓW) lub środowisko LC_ALL, LC_CTYPE lub LANG
zmienne i co najmniej jedna z nich zwraca coś, co pasuje do „UTF-8” lub
„utf8” bez rozróżniania wielkości liter; dla bezpośrednich połączeń wbudowanych w zależności od
wspomniane zmienne środowiskowe; lub dla stdin lub skryptów, jeśli input
zaczyna się od znaku kolejności bajtów UTF-8.

W niedalekiej przyszłości zostanie wdrożone śledzenie lokalizacji, co oznacza, że zestaw -+U is
zmieniane za każdym razem, gdy zmienia się jedna ze zmiennych środowiskowych związanych z ustawieniami regionalnymi POSIX.

-u | -o rzeczownik
Odwołanie do nieustawionego parametru innego niż „$@” lub „$*” jest traktowane jako
błąd, chyba że użyto jednego z modyfikatorów „-”, „+” lub „=”.

-v | -o gadatliwy
Zapisz dane wejściowe powłoki do standardowego błędu podczas odczytu.

-X | -o markizy
Podczas generowania nazwy pliku oznaczaj katalogi końcowym znakiem „/”.

-x | -o xtras
Drukuj drzewa poleceń po ich wykonaniu, poprzedzone wartością PS4.

-o bgnice
Zadania w tle są uruchamiane z niższym priorytetem.

-o klamrarozwiń
Włącz rozwijanie nawiasów (czyli naprzemienność). Opcja ta jest domyślnie włączona. Jeśli
wyłączone, rozwijanie tyldy po znaku równości jest wyłączone jako efekt uboczny.

-o emacs
Włącz edycję wiersza poleceń w stylu BRL emacs (tylko powłoki interaktywne); Widzieć Emacs
redagowanie tryb.

-o gmacs
Włącz edycję wiersza poleceń podobną do gmacsa (tylko powłoki interaktywne). Obecnie
identyczny z edycją emacsa, z tą różnicą, że transpozycja znaków (^T) działa nieznacznie
różnie.

-o ignorować
Powłoka nie zostanie (łatwo) zamknięta po odczytaniu końca pliku; wyjście musi być użyte.
Aby uniknąć nieskończonych pętli, powłoka zakończy działanie, jeśli EOF zostanie odczytany 13 razy z rzędu.

-o dziedziczenie-xtrace
Nie resetuj -o xtras po wejściu do funkcji. Opcja ta jest domyślnie włączona.

-o noup
Nie kończ uruchomionych zadań sygnałem SIGHUP po wyjściu powłoki logowania.
Obecnie ustawione domyślnie, ale może się to zmienić w przyszłości, aby było kompatybilne
z AT&T UNIX ksh, który nie ma tej opcji, ale wysyła SIGHUP
sygnał.

-o nolog
Bez efektu. W oryginalnej powłoce Korna zapobiega to definicjom funkcji
zapisywane w pliku historii.

-o fizyczny
Powoduje cd i Pwd polecenia umożliwiające użycie „fizycznego” (tj. systemu plików) „..”
katalogi zamiast katalogów „logicznych” (tzn. powłoka obsługuje „..”, które
pozwala użytkownikowi zapomnieć o dowiązaniach symbolicznych do katalogów). Wyczyść przez
domyślny. Należy pamiętać, że ustawienie tej opcji nie ma wpływu na bieżącą wartość pliku
parametr PWD; tylko cd polecenie zmienia hasło. Zobacz cd i Pwd Polecenia
powyżej, aby uzyskać więcej informacji.

-o awaria potoku
Ustaw status wyjścia potoku (przed logicznym uzupełnieniem).
prawy niezerowy poziom błędu lub zero, jeśli wszystkie polecenia zakończyły się z zerem.

-o posix
Zachowuj się bliżej standardów (patrz POSIX tryb dla szczegółów). Automatycznie
włączone, jeśli nazwa bazowa wywołania powłoki zaczyna się od „sh” i this
funkcja autodetekcji jest wkompilowana w (nie w MirBSD). Jako efekt uboczny ustawienie
ta flaga gaśnie klamrarozwiń tryb, który można ponownie włączyć ręcznie, oraz
sh tryb (chyba, że ​​oba są włączone jednocześnie).

-o sh
umożliwiać / Bin / sh tryb (kludge) (patrz SH tryb). Włączane automatycznie, jeśli
nazwa bazowa wywołania powłoki zaczyna się od „sh” i ma tę funkcję automatycznego wykrywania
jest skompilowany w (nie w MirBSD). Jako efekt uboczny ustawienie tej flagi wyłącza się
klamrarozwiń tryb, który można ponownie włączyć ręcznie, oraz posix tryb (chyba, że
oba są włączone w tym samym czasie).

-o vi
umożliwiać vi(1) edycja z wiersza poleceń (tylko powłoki interaktywne). Widzieć Vi
redagowanie tryb w zakresie dokumentacji i ograniczeń.

-o vi-esckompletny
W edycji wiersza poleceń vi wykonaj uzupełnianie poleceń i nazw plików podczas ucieczki (^[)
jest wprowadzane w trybie poleceń.

-o vi-tabcomplete
W edycji wiersza poleceń vi wykonaj uzupełnianie nazw poleceń i plików, gdy znajduje się tabulator (^I).
wprowadzone w trybie wstawiania. To jest ustawienie domyślne.

-o Wiara
Bez efektu. W oryginalnej powłoce Korna, chyba że Wiara zostało ustawione, polecenie vi-
tryb liniowy pozwoliłby tty(4) sterownik wykonuje pracę do momentu wprowadzenia ESC (^[).
mksz jest zawsze w trybie viraw.

Opcji tych można również użyć po wywołaniu powłoki. Aktualny zestaw
opcje (z nazwami jednoliterowymi) można znaleźć w parametrze '$-'. zestaw -o w
żadna nazwa opcji nie wyświetli wszystkich opcji i tego, czy każda z nich jest włączona, czy wyłączona; zestaw +o będzie
wydrukuj długie nazwy wszystkich aktualnie włączonych opcji. W przyszłej wersji zestaw
+o będzie zachowywał się zgodnie z POSIX i drukował polecenia, aby przywrócić bieżące opcje
zamiast.

Pozostałe argumenty, jeśli występują, są parametrami pozycyjnymi i są przypisane w kolejności
parametry pozycyjne (tj. $1, $2, itd.). Jeśli opcje kończą się na „--” i tam
nie ma pozostałych argumentów, wszystkie parametry pozycyjne zostaną wyczyszczone. Jeśli nie ma opcji lub
podawane są argumenty, wypisywane są wartości wszystkich nazw. Dla nieznanych historycznych
powodów samotna opcja „-” jest traktowana wyjątkowo – czyści obie opcje -v i -x
opcje.

przesunięcie [numer]
Parametry pozycyjne numer+ 1, numerNazwy +2 itd. zostają zmienione na „1”, „2” itd.
numer domyślnie 1.

spać sekund
Zawiesza wykonanie na min sekund określona jako dodatnia wartość dziesiętna
z opcjonalną częścią ułamkową. Dostarczanie sygnału może być kontynuowane wcześniej.

źródło filet [arg ...]
Jak . („kropka”), z tą różnicą, że do wyszukiwania dołączany jest bieżący katalog roboczy
ścieżka (GNU bash rozbudowa).

zawieszać
Zatrzymuje powłokę tak, jakby otrzymała znak zawieszenia z terminala. To jest
nie można zawiesić powłoki logowania, chyba że proces nadrzędny jest członkiem
tej samej sesji terminala, ale jest członkiem innej grupy procesów. Jako generał
reguły, jeśli powłoka została uruchomiona przez inną powłokę lub przez su(1), można go zawiesić.

test wyrażenie
[ wyrażenie ]
test ocenia wyrażenie i zwraca stan zerowy, jeśli jest prawdziwy, 1, jeśli jest fałszywy lub większy
niż 1, jeśli wystąpił błąd. Zwykle jest używany jako polecenie warunku if i
Podczas sprawozdania. Dowiązania symboliczne są przestrzegane dla wszystkich filet wyrażenia z wyjątkiem -h i
-L.

Dostępne są następujące podstawowe wyrażenia:

-a filet filet istnieje.

-b filet filet jest specjalnym urządzeniem blokowym.

-c filet filet to specjalne urządzenie o charakterze.

-d filet filet jest katalogiem.

-e filet filet istnieje.

-f filet filet jest zwykłym plikiem.

-G filet filetgrupa jest efektywnym identyfikatorem grupy powłoki.

-g filet filettryb ma ustawiony bit setgid.

-H filet filet jest katalogiem zależnym od kontekstu (przydatny tylko w systemie HP-UX).

-h filet filet jest dowiązaniem symbolicznym.

-k filet filettryb ma lepki(8) zestaw bitów.

-L filet filet jest dowiązaniem symbolicznym.

-O filet filetwłaścicielem jest efektywny identyfikator użytkownika powłoki.

-o opcja Powłoka opcja jest ustawiony (patrz zestaw polecenie powyżej, aby wyświetlić listę
opcje). Jako rozszerzenie niestandardowe, jeśli opcja zaczyna się od
„!”, test jest zanegowany; test zawsze kończy się niepowodzeniem, jeśli opcja
nie istnieje (więc [ -o foo -o -o !foo ] zwraca wartość true wtedy i tylko
jeśli opcja bla istnieje). To samo można osiągnąć za pomocą [ -o ?foo ]
jak w AT&T UNIX ksh93. opcja może być również krótką flagą prowadzoną przez
albo „-” albo „+” (bez logicznej negacji), na przykład „-x” lub „+x”
zamiast „xtrace”.

-p filet filet to nazwany potok (FIFO).

-r filet filet istnieje i jest czytelny.

-S filet filet jest UNIX(4)-gniazdo domeny.

-s filet filet nie jest pusty.

-t fd Deskryptor pliku fd jest tty(4) urządzenie.

-u filet filettryb ma ustawiony bit setuid.

-w filet filet istnieje i jest zapisywalny.

-x filet filet istnieje i jest wykonywalny.

file1 -nie file2 file1 jest nowszy niż file2 or file1 istnieje i file2 nie.

file1 -ot file2 file1 jest starszy niż file2 or file2 istnieje i file1 nie.

file1 -jeśli file2 file1 jest tym samym plikiem co file2.

ciąg ciąg ma niezerową długość.

-n ciąg ciąg nie jest pusty.

-z ciąg ciąg jest pusty.

ciąg = ciąg Ciągi są równe.

ciąg == ciąg Ciągi są równe.

ciąg > ciąg Pierwszy argument ciągu jest większy niż drugi argument ciągu.

ciąg < ciąg Pierwszy argument ciągu jest mniejszy niż drugi argument ciągu.

ciąg != ciąg Ciągi nie są równe.

numer -równe numer Liczby są sobie równe.

numer -ne numer Liczby nie są sobie równe.

numer -dawać numer Liczby są większe lub równe.

numer -GT numer Liczby są większe niż.

numer Im numer Liczby są mniejsze lub równe.

numer -lt numer Liczby porównują mniej niż.

Powyższe podstawowe wyrażenia, w których operatory jednoargumentowe mają pierwszeństwo przed binarnymi
operatory, można łączyć z następującymi operatorami (wymienionymi w kolejności rosnącej
pierwszeństwa):

wyrażenie -o wyrażenie Logiczne LUB.
wyrażenie -a wyrażenie Logiczne AND.
! wyrażenie Logiczne NIE.
( wyrażenie ) Grupowanie.

Należy pamiętać, że liczba w rzeczywistości może być wyrażeniem arytmetycznym, na przykład matematycznym
termin lub nazwa zmiennej całkowitej:

x=1; [ "x" -eq 1 ] ma wartość true

Należy pamiętać, że stosowane są pewne specjalne zasady (dzięki uprzejmości POSIX), jeśli liczba
argumenty do test lub w nawiasach [ ... ] jest mniejsza niż pięć: jeśli prowadzi „!”
argumenty można usunąć w taki sposób, że pozostanie tylko od jednego do trzech argumentów, wówczas
wykonywane jest porównanie obniżone; (dzięki XSI) nawiasy \( ... \) dolne cztery- i
odpowiednio formy trzyargumentowe na formy dwu- i jednoargumentowe; trzyargumentowy
formy ostatecznie preferują operacje binarne, po których następuje negacja i nawiasy
opuszczenie; Formy dwu- i czteroargumentowe preferują negację, po której następuje nawias; the
forma jednoargumentowa zawsze implikuje -n.

Note: Częstym błędem jest użycie „if [ $foo = bar ]”, co kończy się niepowodzeniem, jeśli parametr „foo”
ma wartość NULL lub jest nieustawiona, jeśli zawiera spacje (tj. oktety IFS) lub jest liczbą jednoargumentową
operator taki jak „!” Lub '-n'. Zamiast tego użyj testów takich jak „if [ x"$foo" = x"bar" ]” lub
operator w podwójnym nawiasie „if [[ $foo = bar ]]” lub, aby uniknąć dopasowania wzorca (patrz [[
powyżej): „if [[ $foo = "$bar" ]]”

Połączenia [[ ... ]] konstrukcja jest nie tylko bezpieczniejsza w użyciu, ale także często szybsza.

czas [-p] [rurociąg]
Jeśli rurociąg podany jest czas wykonania potoku. Jeśli nie
podany jest potok, następnie czas użytkownika i systemu używany przez samą powłokę i tak dalej
raportowane są polecenia, które wykonał od chwili uruchomienia. Podane czasy są
czas rzeczywisty (czas, który upłynął od początku do końca), czas procesora użytkownika (czas spędzony
działający w trybie użytkownika) i czas procesora systemu (czas spędzony na działaniu w trybie jądra).
Czasy podawane są z błędem standardowym; format wyniku to:

0m0.00s rzeczywisty 0m0.00s użytkownik 0m0.00s system

Jeśli -p opcja jest podana, wynik jest nieco dłuższy:

prawdziwy 0.00
użytkownik 0.00
system 0.00

Błędem jest określenie -p opcja, chyba że rurociąg to proste polecenie.

Proste przekierowania błędu standardowego nie wpływają na wynik operacji czas polecenie:

$ czas snu 1 2> plik
$ { czas snu 1; } 2>plik

Czasy pierwszego polecenia nie idą do „afile”, ale czasy drugiego polecenia tak.

czasy Wydrukuj skumulowane czasy użytkownika i systemu wykorzystywane zarówno przez powłokę, jak i procesy
że zaczęła się powłoka, która wyszła. Format danych wyjściowych to:

0m0.00s 0m0.00s
0m0.00s 0m0.00s

pułapka n [sygnał ...]
Jeśli pierwszy operand jest dziesiętną liczbą całkowitą bez znaku, powoduje to zresetowanie wszystkich określonych sygnałów
do akcji domyślnej, czyli jest tożsame z wywołaniem pułapka ze znakiem minus („-”) jako
treser, po którym następują argumenty (n [sygnał ...]), z których wszystkie są traktowane jako
sygnały.

pułapka [treser sygnał ...]
Ustawia procedurę obsługi pułapki, która ma zostać wykonana, gdy którykolwiek z określonych sygnałs są
Odebrane. treser jest albo pustym ciągiem znaków, wskazującym, jakie sygnały mają być
ignorowane, znak minus („-”) wskazujący, że ma zostać podjęte działanie domyślne
sygnały (patrz sygnał(3)) lub ciąg zawierający polecenia powłoki, które mają zostać wykonane
przy pierwszej okazji (tzn. po zakończeniu bieżącego polecenia lub przed drukowaniem).
kolejny monit PS1) po odebraniu jednego z sygnałów. sygnał to imię
sygnału (np. PIPE lub ALRM) lub numer sygnału (patrz pkt zabić -l komenda
powyżej).

Istnieją dwa sygnały specjalne: EXIT (znany również jako 0), który jest wykonywany, gdy
powłoka wkrótce zakończy działanie i ERR, który jest wykonywany po wystąpieniu błędu; jest błąd
coś, co spowodowałoby wyjście powłoki, jeśli zestaw -e or zestaw -o błąd opcja
zostały ustawione. Procedury obsługi EXIT są wykonywane w środowisku ostatnio wykonanego
dowództwo.

Należy pamiętać, że w przypadku powłok nieinteraktywnych procedury obsługi pułapek nie można zmienić dla sygnałów
które zostały zignorowane podczas uruchamiania powłoki.

Bez argumentów bieżący stan pułapek ustawionych od czasu powłoki
rozpoczęte jest pokazywane jako seria pułapka polecenia. Należy pamiętać, że wyjście pułapka nie może
zostać z pożytkiem przekierowane do innego procesu (artefakt wynikający z oczyszczenia pułapek
gdy tworzone są podprocesy).

Oryginalna pułapka DEBUG powłoki Korna oraz obsługa pułapek ERR i EXIT
funkcje nie zostały jeszcze zaimplementowane.

prawdziwy Polecenie, które kończy się z wartością zerową.

światowy [[+-alpnrtUux] [-L[n]] [-R[n]] [-Z[n]] [-i[n]] | -f [-smoking]] [Nazwa [=wartość] ...]
skład [[+-alpnrtUux] [-LRZ[n]] [-i[n]] | -f [-smoking]] [Nazwa [=wartość] ...]
Wyświetl lub ustaw atrybuty parametrów. Z nie Nazwa argumenty, atrybuty parametrów
są wyświetlane; jeśli nie są używane żadne opcje, aktualne atrybuty wszystkich parametrów są takie
drukowane jako skład polecenia; jeśli podana jest opcja (lub „-” bez litery opcji),
drukowane są wszystkie parametry i ich wartości z określonymi atrybutami; jeśli opcje
są wprowadzane znakiem „+”, wartości parametrów nie są drukowane.

If Nazwa podawane są argumenty, ustawiane są atrybuty nazwanych parametrów (-) lub
wyczyszczone (+). Opcjonalnie można podać wartości parametrów. Dla Nazwa[*],
zmiana wpływa na całą tablicę i nie można określić żadnej wartości.

If skład jest używany wewnątrz funkcji, wszelkie określone parametry są lokalizowane. Ten
nie jest wykonywana przez skądinąd identyczne światowy. Note: To znaczy że mksz 's światowy
polecenie jest nie równoważny z innymi językami programowania”, ponieważ nie pozwala na a
funkcja wywoływana z innej funkcji, aby uzyskać dostęp do parametru w prawdziwie globalnym zasięgu,
ale tylko zapobiega umieszczeniu obiektu, do którego uzyskano dostęp, w zasięgu lokalnym.

Kiedy -f jest używany, skład operuje na atrybutach funkcji. Jak z
parametry, jeśli nie Nazwa podane są argumenty, funkcje są wyszczególnione wraz z ich wartościami
(tj. definicje), chyba że opcje zostaną wprowadzone z „+”, w takim przypadku tylko
zgłaszane są nazwy funkcji.

-a Indeksowany atrybut tablicy.

-f Tryb funkcji. Zamiast tego wyświetlaj lub ustawiaj funkcje i ich atrybuty
parametry.

-i[n] Atrybut całkowity. n określa podstawę używaną podczas wyświetlania liczby całkowitej
(jeśli nie określono, stosowana jest podstawa podana w pierwszym przypisaniu).
Parametrom posiadającym ten atrybut można przypisać wartości zawierające elementy arytmetyczne
wyrażenia.

-L[n] Lewy atrybut justowania. n określa szerokość pola. Jeśli n nie jest określony,
bieżąca szerokość parametru (lub szerokość jego pierwszej przypisanej wartości)
Jest używane. Wiodące białe znaki (i zera, jeśli są używane z -Z opcja) jest
obnażony. Jeśli to konieczne, wartości są albo obcinane, albo uzupełniane spacjami, aby je dopasować
szerokość pola.

-l Atrybut małych liter. Wszystkie wielkie litery w wartościach są konwertowane na
małe litery. (W oryginalnej powłoce Korna parametr ten oznaczał „długą liczbę całkowitą”
gdy jest używany z -i opcja.)

-n Utwórz powiązaną zmienną (odniesienie do nazwy): dowolny dostęp do zmiennej Nazwa
uzyska dostęp do zmiennej wartość w obecnym zakresie (jest to odmienne od
AT&T UNIX ksh93!) Zamiast. Różni się także od AT&T UNIX ksh93 jest to, że
wartość jest wówczas leniwie oceniany Nazwa jest dostępny. Można z tego skorzystać
zamiast tego uzyskują dostęp do zmiennych, których nazwy są przekazywane jako parametry
używania eval.

-p Drukowanie zakończone skład polecenia, których można użyć do ponownego utworzenia atrybutów
i wartości parametrów.

-R[n] Prawo uzasadnij atrybut. n określa szerokość pola. Jeśli n nie jest
określona, ​​bieżąca szerokość parametru (lub szerokość jego pierwszego
przypisana wartość) jest używana. Końcowe białe znaki są usuwane. Jeśli to konieczne,
wartości są albo pozbawione wiodących znaków, albo dopełnione spacjami, aby je utworzyć
dopasować do szerokości pola.

-r Atrybut tylko do odczytu. Parametry z tym atrybutem nie mogą być przypisane
lub rozbrojony. Po ustawieniu tego atrybutu nie można go wyłączyć.

-t Atrybut tagu. Nie ma znaczenia dla powłoki; przeznaczone do użytku z aplikacją.

Dla funkcji, -t jest atrybutem śledzenia. Gdy działa z funkcją śledzenia
atrybuty są wykonywane, xtras (-x) opcja powłoki jest tymczasowo włączona
jeden.

-U Atrybut liczby całkowitej bez znaku. Liczby całkowite są drukowane jako wartości bez znaku (combine
z -i opcja). Ta opcja nie jest dostępna w oryginalnej powłoce Korna.

-u Atrybut wielkich liter. Wszystkie małe litery w wartościach są konwertowane na
duże litery. (W oryginalnej powłoce Korna parametr ten oznaczał „unsigned
integer” w przypadku użycia z -i opcja, która oznaczała, że ​​będą duże litery
nigdy nie należy używać dla zasad większych niż 10. Zobacz -U opcja.)

Dla funkcji, -u jest niezdefiniowanym atrybutem. Widzieć Funkcje powyżej dla
konsekwencje tego.

-x Eksportuj atrybut. Parametry (lub funkcje) umieszczane są w środowisku
wszelkie wykonane polecenia. Wyeksportowane funkcje nie są jeszcze zaimplementowane.

-Z[n] Atrybut wypełnienia zerowego. Jeśli nie w połączeniu z -L, to to samo co -R, z wyjątkiem
Zamiast dopełnienia spacji używane jest dopełnienie zerami. W przypadku liczb całkowitych liczba
zamiast podstawy jest wyściełana.

Jeśli którykolwiek z -i, -L, -l, -R, -U, -ulub -Z opcje zostaną zmienione, wszystkie inne z tego
set są wyczyszczone, chyba że są również podane w tym samym wierszu poleceń.

ulimit [-aBCcdefHilMmnOPpqrSsTtVvw] [wartość]
Wyświetl lub ustaw limity procesu. Jeśli nie zostaną użyte żadne opcje, limit rozmiaru pliku (-f) jest
przypuszczalny. wartość, jeśli jest określony, może być wyrażeniem arytmetycznym lub słowem
"Nieograniczony". Limity wpływają na powłokę i wszelkie procesy utworzone przez powłokę
po nałożeniu limitu. Należy pamiętać, że niektóre systemy mogą nie zezwalać na stosowanie limitów
zwiększone po ich ustaleniu. Należy również pamiętać, że dostępne rodzaje limitów są systemowe
zależny – niektóre systemy mają tylko -f limit.

-a Wyświetl wszystkie limity; chyba że -H jest używany, wyświetlane są miękkie limity.

-B n Ustaw rozmiar bufora gniazda na n kibibajty.

-C n Ustaw liczbę buforowanych wątków na n.

-c n Nałóż limit rozmiaru wynoszący n blokuje wielkość zrzutów rdzenia.

-d n Nałóż limit rozmiaru wynoszący n kilobajtów na rozmiar obszaru danych.

-e n Ustaw maksymalną uprzejmość na n.

-f n Nałóż limit rozmiaru wynoszący n bloki na plikach zapisanych przez powłokę i jej dziecko
procesów (można czytać pliki dowolnej wielkości).

-H Ustaw tylko twardy limit (domyślnie ustawione są zarówno twarde, jak i miękkie limity).

-i n Ustaw liczbę oczekujących sygnałów na n.

-l n Nałożyć limit n kilobajtów na ilość zablokowanej (przewodowej) pamięci fizycznej.

-M n Ustaw pamięć zablokowaną AIO na n kibibajty.

-m n Nałożyć limit n kilobajtów na ilość używanej pamięci fizycznej.

-n n Nałożyć limit n deskryptory plików, które można otworzyć jednocześnie.

-O n Ustaw liczbę operacji AIO na n.

-P n Ogranicz liczbę wątków na proces do n.

-p n Nałożyć limit n procesy, które użytkownik może uruchomić w dowolnym momencie.

-q n Ogranicz rozmiar kolejek komunikatów POSIX do n bajty.

-r n Ustaw maksymalny priorytet w czasie rzeczywistym na n.

-S Ustaw tylko limit miękki (domyślnie ustawione są zarówno limity twarde, jak i miękkie).

-s n Nałóż limit rozmiaru wynoszący n kilobajtów na rozmiar obszaru stosu.

-T n Nałożyć limit czasowy n rzeczywiste sekundy do wykorzystania przez każdy proces.

-t n Nałożyć limit czasowy n Sekundy procesora spędzone w trybie użytkownika do wykorzystania przez każdego
proces.

-V n Ustaw liczbę monitorów vnode w Haiku na n.

-v n Nałożyć limit n kibibajty na ilość pamięci wirtualnej (przestrzeni adresowej)
używany.

-w n Nałożyć limit n kilobajtów na ilość wykorzystanej przestrzeni wymiany.

Tak daleko jak ulimit dotyczy, blok ma 512 bajtów.

umaska [-S] [maska]
Wyświetl lub ustaw maskę tworzenia uprawnień do plików lub umask (patrz umaska(2)). Jeśli -S
opcja jest używana, wyświetlana lub ustawiana maska ​​jest symboliczna; w przeciwnym razie jest to ósemka
liczba.

Maski symboliczne przypominają te, których używa chmod(1). Kiedy są używane, opisują co
można udostępnić uprawnienia (w przeciwieństwie do masek ósemkowych, w których ustawiony bit oznacza
odpowiedni bit ma zostać wyczyszczony). Na przykład „ug=rwx,o=” ustawia maskę w ten sposób
pliki nie będą możliwe do odczytania, zapisu ani wykonania przez „inne osoby” i są równoważne
(w większości systemów) na maskę ósemkową „007”.

alias [-adt] [Nazwa ...]
Aliasy imion są usuwane. Jeśli -a używana jest opcja, wszystkie aliasy
są usunięte. Jeśli -t or -d opcji, wykonywane są wskazane operacje
out odpowiednio w śledzonych lub katalogowych aliasach.

rozbrojony [-fv] parametr ...
Usuń ustawienie nazwanych parametrów (-v, wartość domyślna) lub funkcje (-f). Z parametr[*],
atrybuty są zachowywane, tylko wartości są nieustawione.

Status wyjścia jest różny od zera, jeśli którykolwiek z parametrów ma atrybut tylko do odczytu
ustawić, w przeciwnym razie zero.

czekać [praca ...]
Poczekaj na zakończenie określonych zadań. Stan wyjścia czekać jest ostatnim
określona praca; jeśli ostatnie zadanie zostanie zakończone sygnałem, status wyjścia wynosi 128 + the
numer sygnału (patrz zabić -l status wyjścia powyżej); jeśli ostatnie określone zadanie nie może
zostać znaleziony (ponieważ nigdy nie istniał lub już się skończył), status wyjścia czekać
jest 127. Zobacz Praca kontrola poniżej w formacie praca. czekać powróci, jeśli pojawi się sygnał
dla którego ustawiono pułapkę, lub jeśli odebrano sygnał SIGHUP, SIGINT lub SIGQUIT
jest otrzymywany.

Jeśli nie określono żadnego zadania, czekać czeka, aż wszystkie aktualnie uruchomione zadania (jeśli takie istnieją).
zakończyć i wyjść ze statusem zerowym. Jeśli włączone jest monitorowanie zadania, zakończenie
drukowany jest status zadań (nie ma to miejsca w przypadku jawnie określonych zadań).

skąd [-pw] [Nazwa ...]
Bez -v opcja jest taka sama jak komenda -v, chyba że aliasy nie są drukowane
jako polecenie aliasu. Z -v opcja jest dokładnie taka sama jak komenda -V, w
w obu przypadkach -p opcja jest inna: nie ma to wpływu na ścieżkę wyszukiwania skąd, ale
wyszukiwanie jest ograniczone do ścieżki.

Praca kontrola
Kontrola zadań odnosi się do zdolności powłoki do monitorowania i kontrolowania zadań, które są procesami lub
grupy procesów utworzone dla poleceń lub potoków. Powłoka przynajmniej śledzi
statusu aktualnie istniejących zadań w tle (tzn. asynchronicznych); Ten
informacje można wyświetlić za pomocą przycisku Oferty pracy polecenia. Jeśli kontrola zadań jest w pełni włączona
(przy użyciu zestaw -m or zestaw -o monitor), podobnie jak w przypadku powłok interaktywnych, procesy zadania
są umieszczane we własnej grupie procesów. Zadania na pierwszym planie można zatrzymać, wpisując polecenie zawieszenia
znak z terminala (zwykle ^Z), zadania można ponownie uruchomić na pierwszym planie lub
tło za pomocą fg i bg poleceń, a stan terminala zostanie zapisany lub przywrócony
odpowiednio, gdy zadanie na pierwszym planie zostanie zatrzymane lub ponownie uruchomione.

Należy pamiętać, że tylko polecenia tworzące procesy (np. polecenia asynchroniczne, podpowłoka
polecenia i polecenia niewbudowane, niefunkcyjne) można zatrzymać; polecenia takie jak czytać nie może
być.

Po utworzeniu zadania zostaje mu przypisany numer zadania. W przypadku powłok interaktywnych liczba ta wynosi
drukowane wewnątrz „[..]”, po którym następują identyfikatory procesów w zadaniu, gdy an
uruchamiane jest polecenie asynchroniczne. O pracy może być mowa w bg, fg, Oferty pracy, zabić, czekać
polecenia albo poprzez identyfikator procesu ostatniego procesu w potoku poleceń (przechowywany w
dotychczasowy $! parametr) lub poprzedzając numer zadania znakiem procentu („%”). Inne procenty
sekwencji można również używać w odniesieniu do zawodów:

%+ | %% | % Ostatnio zatrzymane zadanie lub, jeśli nie ma zatrzymanych zadań, najstarsze
biegająca praca.

% — Praca, która byłaby %+ pracy, gdyby ta ostatnia nie istniała.

%n Praca z numerem zadania n.

%?ciąg Zadanie z poleceniem zawierającym ciąg ciąg (występuje błąd, jeśli
dopasowanych jest wiele zadań).

%ciąg Zadanie z poleceniem rozpoczynającym się od ciągu znaków ciąg (występuje błąd, jeśli
dopasowanych jest wiele zadań).

Kiedy zadanie zmienia stan (np. zadanie w tle zostaje zakończone lub zadanie na pierwszym planie zostaje zatrzymane), plik
Shell wypisuje następujące informacje o statusie:

[numer] flaga status komenda

gdzie...

numer jest numerem zadania;

flaga jest znakiem „+” lub „-”, jeśli zadaniem jest %+ or %- odpowiednio praca lub przestrzeń
jeśli tak nie jest;

status wskazuje aktualny stan zadania i może być:

Zrobione [numer]
Zadanie zostało zakończone. numer jest statusem wyjścia zadania, które zostało pominięte
jeśli status wynosi zero.

Uruchomione Zadanie nie zostało zatrzymane ani zakończone (zwróć uwagę, że uruchomienie nie powoduje tego
musi oznaczać zajęcie czasu procesora – proces może zostać zablokowany
oczekiwanie na jakieś wydarzenie).

Zatrzymany [sygnał]
Zadanie zostało zatrzymane przez wskazanego sygnał (jeśli nie zostanie podany żaden sygnał,
zadanie zostało zatrzymane przez SIGTSTP).

opis sygnału [„rdzeń porzucony”]
Zadanie zostało przerwane przez sygnał (np. błąd pamięci, rozłączenie); używać zabić -l
aby wyświetlić listę opisów sygnałów. Pojawia się komunikat „zrzut rdzenia”.
proces utworzył plik podstawowy.

komenda to polecenie, które utworzyło proces. Jeśli w pliku
zadanie, każdy proces będzie miał linię pokazującą jego komenda i prawdopodobnie to statusJeśli
różni się od stanu poprzedniego procesu.

Gdy podejmowana jest próba wyjścia z powłoki, gdy istnieją zadania w stanie zatrzymania, funkcja
Shell ostrzega użytkownika, że ​​istnieją zatrzymane zadania i nie kończy działania. Jeśli będzie kolejna próba
natychmiastowe opuszczenie powłoki, do zatrzymanych zadań wysyłany jest sygnał SIGHUP i powłoka
wychodzi. Podobnie, jeśli noup opcja nie jest ustawiona i przy próbie są uruchomione zadania
zostaje zmuszony do wyjścia z powłoki logowania, powłoka ostrzega użytkownika i nie wychodzi. Jeśli inny
natychmiast podejmowana jest próba wyjścia z powłoki, do uruchomionych zadań wysyłany jest sygnał SIGHUP i
skorupa wychodzi.

POSIX tryb
Wprowadzanie zestaw -o posix tryb spowoduje mksz aby miejscami zachowywać się jeszcze bardziej zgodnie z POSIX
w przypadku, gdy wartości domyślne lub opinie są różne. Zauważ to mksz będzie nadal działać z niepodpisanymi
arytmetyka 32-bitowa; używać lksz jeśli arytmetyka na hoście długie typ danych, wraz z ISO C
Nieokreślone zachowanie jest wymagane; zapoznaj się z lksz(1) strona podręcznika zawierająca szczegółowe informacje. Większość innych
historyczny, AT&T UNIX ksh-kompatybilne lub uparte różnice można wyłączyć za pomocą tego
tryb; to są:

· GNU bash Przekierowanie we / wy &>filet nie jest już obsługiwany.

· Deskryptory plików utworzone przez przekierowania we/wy są dziedziczone przez procesy potomne.

· Liczby z cyfrą wiodącą zero są interpretowane jako ósemkowe.

· Połączenia przegapić wbudowany nie interpretuje ukośników odwrotnych i obsługuje tylko dokładną opcję „-n".

· ... (lista jest niekompletna i może ulec zmianie dla R53)

SH tryb
Tryb zgodności; przeznaczony do użytku ze starszymi skryptami, których nie można łatwo naprawić; the
zmiany są następujące:

· GNU bash Przekierowanie we / wy &>filet nie jest już obsługiwany.

· Deskryptory plików utworzone przez przekierowania we/wy są dziedziczone przez procesy potomne.

· Połączenia przegapić wbudowany nie interpretuje ukośników odwrotnych i obsługuje tylko dokładną opcję „-n".

· ... (lista jest niekompletna i może ulec zmianie dla R53)

Interaktywny wkład linia redagowanie
Powłoka obsługuje trzy tryby czytania wierszy poleceń z pliku a tty(4) w trybie interaktywnym
sesja kontrolowana przez emacs, gmacs, vi opcje (maksymalnie jedną z nich można ustawić na
raz). Wartość domyślna to emacs. Tryby edycji można ustawić jawnie za pomocą zestaw wbudowane.
Jeśli żadna z tych opcji nie jest włączona, powłoka po prostu czyta linie przy użyciu normalnego tty(4)
kierowca. Jeśli emacs or gmacs opcja jest ustawiona, powłoka umożliwia edycję pliku w sposób podobny do emacsa
Komenda; podobnie, jeśli vi opcja jest ustawiona, powłoka umożliwia edycję pliku w sposób podobny do vi
Komenda. Tryby te opisano szczegółowo w poniższych sekcjach.

W tych trybach edycji, jeśli linia jest dłuższa niż szerokość ekranu (patrz sekcja KOLUMNY
parametr), w ostatniej kolumnie wyświetlany jest znak „>”, „+” lub „<”.
jest więcej znaków po, przed i po lub przed bieżącą pozycją,
odpowiednio. W razie potrzeby linia jest przewijana poziomo.

Wypełnione wiersze są umieszczane w historii, chyba że zaczynają się od oktetu IFS lub IFS
biały znak lub są takie same jak w poprzednim wierszu.

Emacs redagowanie tryb
Podczas emacs opcja jest ustawiona, włączona jest interaktywna edycja linii wejściowych. Ostrzeżenie: ten tryb
różni się nieco od trybu emacsa w oryginalnej powłoce Korna. W tym trybie różne
polecenia edycji (zwykle powiązane z jednym lub większą liczbą znaków sterujących) powodują natychmiastowe działania
bez czekania na nową linię. Kilka poleceń edycyjnych jest powiązanych z konkretną kontrolką
znaki, gdy wywoływana jest powłoka; te powiązania można zmienić za pomocą związania dowództwo.

Poniżej znajduje się lista dostępnych poleceń edycyjnych. Każdy opis zaczyna się od
nazwa komendy zakończona dwukropkiem; jakiś [n] (jeśli polecenie może być poprzedzone a
liczyć); oraz wszelkie klucze, z którymi domyślnie jest powiązane polecenie, zapisane w notacji daszka, np
znak ASCII ESC jest zapisywany jako ^[. W tych sekwencjach kontrolnych wielkość liter nie jest uwzględniana.
Przedrostek licznika dla polecenia wprowadza się za pomocą sekwencji ^[n, Gdzie n jest ciągiem 1
lub więcej cyfr. O ile nie określono inaczej, jeśli licznik zostanie pominięty, domyślnie wynosi 1.

Należy pamiętać, że nazwy poleceń edycji są używane tylko z rozszerzeniem związania Komenda. Ponadto wiele
polecenia edycyjne są przydatne tylko na terminalach z widocznym kursorem. Domyślne powiązania
zostały wybrane tak, aby przypominały odpowiednie powiązania klawiszy Emacsa. Użytkownika tty(4) znaki
(np. ERASE) są powiązane z rozsądnymi substytutami i zastępują powiązania domyślne.

przerwać: ^C, ^G
Przerwij bieżące polecenie, opróżnij bufor linii i ustaw stan wyjścia na
przerwane.

automatyczne wstawianie: [n]
Po prostu powoduje, że znak pojawia się jako dosłowne wejście. Najbardziej zwyczajne postacie
są z tym związani.

znak wsteczny: [n] ^B, ^XD, ANSI-CurLeft, PC-CurLeft
Przesuwa kursor do tyłu n postacie.

słowo-odwrócone: [n] ^[b, ANSI-Ctrl-CurLeft, ANSI-Alt-CurLeft
Przesuwa kursor wstecz na początek słowa; słowa składają się z
znaki alfanumeryczne, podkreślenie („_”) i znak dolara („$”).

początek historii: ^[
Przechodzi na początek historii.

początek linii: ^A, ANSI-Home, PC-Home
Przesuwa kursor na początek edytowanej linii wprowadzania.

słowo pisane wielką literą: [n] ^[C, ^[c
Wielki pierwszy znak w następnym n słowa, pozostawiając kursor poza końcem
ostatniego słowa.

czysty ekran: ^[^L
Drukuje konfigurowalną w czasie kompilacji sekwencję, aby wyczyścić ekran i ustawić kursor w pozycji początkowej,
przerysowuje cały znak zachęty i aktualnie edytowaną linię wejściową. Domyślna sekwencja
działa dla prawie wszystkich standardowych terminali.

komentarz: ^[#
Jeśli bieżąca linia nie zaczyna się od znaku komentarza, jest on dodawany w miejscu
początek linii i linia jest wprowadzana (tak jakby naciśnięto klawisz Return);
w przeciwnym razie istniejące znaki komentarza zostaną usunięte, a kursor zostanie umieszczony na
początek linii.

ukończone: ^[^[
Automatycznie uzupełnia tyle, ile jest unikalne w nazwie polecenia lub nazwie pliku
zawierający kursor. Jeśli cała pozostała nazwa polecenia lub pliku jest unikalna, a
spacja jest drukowana po jej zakończeniu, chyba że jest to nazwa katalogu – w takim przypadku
Dołączony jest znak „/”. Jeśli nie ma polecenia lub nazwy pliku z bieżącym słowem częściowym
jako przedrostek wyprowadzany jest znak dzwonka (zwykle powodujący włączenie sygnału dźwiękowego).

kompletne polecenie: ^X^[
Automatycznie uzupełnia tyle, ile jest unikatowe w nazwie polecenia zawierającej część
słowo do kursora jako jego przedrostek, jak w kompletny polecenie powyżej.

kompletny plik: ^[^X
Automatycznie uzupełnia tyle, ile jest unikatowe w nazwie pliku zawierającej częściową
słowo do kursora jako jego przedrostek, jak w kompletny polecenie opisane powyżej.

pełna lista: ^I, ^[=
Uzupełnij jak najwięcej bieżącego słowa i wypisz możliwe
uzupełnienia do tego. Jeśli możliwe jest tylko jedno uzupełnienie, dopasuj jak w kompletny
polecenie powyżej. Zauważ, że ^I jest zwykle generowane przez klawisz TAB (tabulator).

usuń znak-wstecz: [n] USUŃ, ^?, ^H
Usuwa n znaków przed kursorem.

usuń-znak-przekaż: [n] ANSI-Del, PC-Del
Usuwa n znaków za kursorem.

usuń-słowo-do tyłu: [n] WERASE, ^[^?, ^[^H, ^[h
Usuwa n słowa przed kursorem.

usuń słowo do przodu: [n] ^[zm
Usuwa znaki za kursorem aż do końca n słów.

historia w dół: [n] ^N, ^XB, ANSI-CurDown, PC-CurDown
Przewija bufor historii do przodu n linie (później). Każda linia wejściowa pierwotnie
rozpoczyna się tuż po ostatnim wpisie w buforze historii, tzw down-historia nie jest
przydatne do któregokolwiek Historia wyszukiwania, historia wyszukiwania or up-historia został
wykonane.

małe słowo: [n] ^[L, ^[l
Następne pisane małymi literami n słów.

linia edycji: [n] ^Xe
Edytuj linię n lub bieżącą linię, jeśli nie została określona, ​​interaktywnie. Aktualny
wykonane polecenie jest fc -e ${VISUAL:-${EDYTOR:-vi}} n.

koniec historii: ^[>
Przechodzi na koniec historii.

koniec linii: ^E, ANSI-End, PC-End
Przesuwa kursor na koniec linii wejściowej.

eot: ^_
Działa jako koniec pliku; jest to przydatne, ponieważ wejście w trybie edycji wyłącza normalne
kanonizacja wejścia terminala.

eot-or-delete: [n] ^ D
Działa jako eot jeśli sam na linii; w przeciwnym razie działa jako usuń-znak-przekaż.

błąd: (nie związany)
Błąd (zadzwoń dzwonkiem).

punkt wymiany i znak: ^X^X
Umieszcza kursor w miejscu znacznika i ustawia znacznik w miejscu, w którym znajdował się kursor.

rozwiń plik: ^[*
Dołącza „*” do bieżącego słowa i zastępuje je wynikiem
wykonywanie manipulacji plikami na słowie. Jeśli żaden plik nie pasuje do wzorca, sygnalizowany jest dzwonek
szczebel drabiny.

znak-do przodu: [n] ^F, ^XC, ANSI-CurRight, PC-CurRight
Przesuwa kursor do przodu n postacie.

słowo do przodu: [n] ^[f, ANSI-Ctrl-CurRight, ANSI-Alt-CurRight
Przesuwa kursor do przodu na koniec nsłowo.

goto-historia: [n] ^[g
Przechodzi do numeru historii n.

linia zabicia: ZABIJ
Usuwa całą linię wejściową.

region zabicia: ^W
Usuwa dane wprowadzone pomiędzy kursorem a znacznikiem.

zabij-to-eol: [n] ^ K
Usuwa dane wejściowe od kursora do końca linii if n nie jest określony;
w przeciwnym razie usuwa znaki między kursorem a kolumną n.

lista: ^[?
Drukuje posortowaną, kolumnową listę nazw poleceń lub nazw plików (jeśli istnieją), które mogą
uzupełnij częściowe słowo zawierające kursor. Do nazw katalogów dodano znak „/”.
do nich.

polecenie listy: ^X?
Drukuje posortowaną, kolumnową listę nazw poleceń (jeśli istnieją), które mogą zakończyć
częściowe słowo zawierające kursor.

plik-listy: ^X^Y
Drukuje posortowaną, kolumnową listę nazw plików (jeśli istnieją), które mogą zakończyć
częściowe słowo zawierające kursor. Wskaźniki typów plików są dołączane zgodnie z opisem
dla podstęp powyżej.

nowa linia: ^J, ^M
Powoduje przetworzenie bieżącego wiersza wejściowego przez powłokę. Bieżący kursor
pozycja może znajdować się w dowolnym miejscu linii.

nowa linia i następna: ^O
Powoduje, że bieżąca linia wejściowa zostanie przetworzona przez powłokę, a następna linia z
historia staje się bieżącą linią. Jest to przydatne tylko po up-historia,
Historia wyszukiwania or historia wyszukiwania.

nie ma opcji: WYJDŹ
To nic nie daje.

przedrostek-1: ^[
Wprowadza 2-znakową sekwencję poleceń.

przedrostek-2: ^X, ^[[, ^[O
Wprowadza 2-znakową sekwencję poleceń.

poprzednie-słowo-historyczne: [n] ^[., ^[_
Ostatnie słowo lub, jeśli zostało podane, nsłowo (od zera) poprzedniego (w powtórzeniu
wykonanie, przedostatnie, przedostatnie itp.) polecenie jest wstawiane przy kursorze. Zastosowanie
to polecenie edycji usuwa znak.

cytat: ^^, ^V
Poniższy znak należy rozumieć dosłownie, a nie jako polecenie edycji.

przerysuj: ^L
Drukuje ponownie ostatnią linię ciągu zachęty i bieżącą linię wejściową na nowej
Linia.

szukaj znaku wstecz: [n] ^[^]
Szukaj wstecz w bieżącym wierszu dla nwystąpieniu następnego znaku
wpisane.

szukaj znaku do przodu: [n] ^]
Szukaj do przodu w bieżącym wierszu dla nwystąpieniu następnego znaku
wpisane.

historia wyszukiwania: ^R
Wejdź w tryb wyszukiwania przyrostowego. Wewnętrzna lista historii jest przeszukiwana wstecz
polecenia pasujące do wejścia. Początkowe „^” w wyszukiwanym ciągu zakotwicza
szukaj. Klawisz Escape opuści tryb wyszukiwania. Inne polecenia, w tym sekwencje
ucieczki jako przedrostek-1 następnie przedrostek-1 or przedrostek-2 klucz zostanie wykonany po
opuszczanie trybu wyszukiwania. The poronienie Polecenie (^G) przywróci wcześniejszą linię wejściową
rozpoczęło się wyszukiwanie. Kolejny Historia wyszukiwania polecenia kontynuuj wyszukiwanie wstecz do
następne poprzednie wystąpienie wzorca. Bufor historii przechowuje tylko a
skończona liczba linii; najstarsze są odrzucane w razie potrzeby.

historia wyszukiwania w górę: ANSI-PgUp, PC-PgUp
Przeszukaj wstecz bufor historii w poszukiwaniu poleceń, których początek pasuje do
część linii wejściowej przed kursorem. W przypadku użycia w pustej linii ma to miejsce
taki sam efekt jak up-historia.

historia wyszukiwania w dół: ANSI-PgDn, PC-PgDn
Wyszukaj w buforze historii polecenia, których początek pasuje do
część linii wejściowej przed kursorem. W przypadku użycia w pustej linii ma to miejsce
taki sam efekt jak down-historia. Jest to przydatne tylko po up-historia,
Historia wyszukiwania or historia wyszukiwania.

polecenie set-mark: ^[
Ustaw znacznik w pozycji kursora.

transpozycja znaków: ^T
Jeśli na końcu linii lub jeśli gmacs opcja jest ustawiona, powoduje to zamianę obu
poprzednie znaki; w przeciwnym razie zamienia poprzednie i bieżące znaki oraz
przesuwa kursor o jeden znak w prawo.

historia up-historia: [n] ^P, ^XA, ANSI-CurUp, PC-CurUp
Przewija bufor historii do tyłu n linie (wcześniej).

wypukłe słowo: [n] ^[U, ^[u
Następne wielkie litery n słów.

wersja: ^[^V
Wyświetl wersję mksz. Bieżący bufor edycji jest przywracany natychmiast po naciśnięciu klawisza
jest wciśnięty. Przetwarzane jest naciśnięcie klawisza przywracającego, chyba że jest to spacja.

szarpnięcie: ^Y
Wstawia ostatnio zabity ciąg tekstowy w bieżącej pozycji kursora.

yank-pop: ^[y
Natychmiast po a szarpać, zastępuje wstawiony ciąg tekstowy następnym wcześniej
zabity ciąg tekstowy.

Vi redagowanie tryb
Uwaga: Tryb edycji wiersza poleceń vi jest osierocony, ale nadal funkcjonalny. Jest czysty 8-bitowo
ale w szczególności nie obsługuje UTF-8 ani MBCS.

Edytor wiersza poleceń vi w mksz ma w zasadzie te same polecenia co vi(1) redaktor z
następujące wyjątki:

· Zaczynasz w trybie wstawiania.

· Istnieją polecenia dotyczące nazw plików i uzupełniania poleceń: =, \, *, ^X, ^E, ^F i,
opcjonalnie, I .

· Połączenia _ polecenie jest inne (w mksz, jest to polecenie będące ostatnim argumentem; W vi(1) to idzie
na początek bieżącej linii).

· Połączenia / i G polecenia poruszają się w kierunku przeciwnym do j dowództwo.

· Polecenia, które nie mają sensu w edytorze jednowierszowym, nie są dostępne (np. screen
komendy ruchu i exDwukropek w stylu (1) (:) polecenia).

Jak vi(1), istnieją dwa tryby: tryb „wstawiania” i tryb „polecenia”. Większość w trybie wstawiania
znaki są po prostu umieszczane w buforze w bieżącej pozycji kursora podczas ich wpisywania;
jednak niektóre postacie są traktowane specjalnie. W szczególności są to następujące znaki
pobrane z prądu tty(4) ustawienia (patrz stty(1)) i mają swoje zwykłe znaczenie (wartości normalne
są w nawiasach): zabić (^U), usunąć (^?), werase (^W), eof (^D), intr (^C) i zakończyć (^\).
Oprócz powyższego, następujące znaki są również traktowane specjalnie we wstawce
tryb:

^E Wyliczenie nazw poleceń i plików (patrz niżej).

^F Uzupełnianie nazw poleceń i plików (patrz poniżej). Jeśli zostanie użyte dwa razy z rzędu, lista
wyświetlane są możliwe uzupełnienia; jeśli zostanie użyty trzeci raz, zakończenie zostanie cofnięte.

^H Usuwa poprzedni znak.

^J | ^M Koniec linii. Bieżąca linia jest odczytywana, analizowana i wykonywana przez powłokę.

^V Dosłownie następny. Następny wpisany znak nie jest traktowany specjalnie (można do tego przywyknąć
wstaw opisywane tutaj znaki).

^X Rozszerzanie nazw poleceń i plików (patrz poniżej).

Przełącza edytor w tryb poleceń (patrz poniżej).

Opcjonalna nazwa pliku i uzupełnienie poleceń (patrz ^F powyżej), włączone za pomocą zestaw -o
vi-tabcomplete.

W trybie poleceń każdy znak jest interpretowany jako polecenie. Postacie, które tego nie robią
odpowiadają poleceniom, są niedozwolonymi kombinacjami poleceń lub są poleceniami, które nie mogą być
wykonane, wszystkie powodują sygnały dźwiękowe. W poniższych opisach poleceń [n] wskazuje
polecenie może być poprzedzone liczbą (np 10l przesuwa się w prawo o 10 znaków); jeśli nie ma numeru
używany jest przedrostek, n przyjmuje się, że wynosi 1, chyba że określono inaczej. Termin „aktualny”.
pozycja” odnosi się do pozycji pomiędzy kursorem a znakiem poprzedzającym kursor.
„Słowo” to ciąg liter, cyfr i znaków podkreślenia lub ciąg znaków niebędących
litery, znaki inne niż cyfry, znaki podkreślenia i znaki inne niż białe znaki (np. „ab2*&^” zawiera dwa
słowa), a „duże słowo” to sekwencja znaków innych niż białe znaki.

Specjalny mksz vi polecenia:

Poniższych poleceń nie ma w normalnym edytorze plików vi lub różnią się one od niego:

[n]_ Wstaw spację, po której następuje nwielkie słowo z ostatniego polecenia w historii
w bieżącej pozycji i wejdź w tryb wstawiania; Jeśli n nie jest określony, ostatni
wstawiono słowo.

# Wstaw znak komentarza („#”) na początku bieżącej linii i wróć
linia do powłoki (odpowiednik ja#^J).

[n]g Lubię to G, chyba że n nie jest określony, przechodzi do ostatnio zapamiętanego
Linia.

[n]v Edytuj linię n używając vi(1) redaktor; Jeśli n nie jest określony, bieżąca linia jest
edytowane. Rzeczywiste wykonane polecenie to fc -e ${VISUAL:-${EDYTOR:-vi}} n.

* i ^X Rozszerzanie nazw poleceń lub plików jest stosowane do bieżącego dużego słowa (z rozszerzeniem
z dodanym „*”, jeśli słowo nie zawiera znaków malarskich) – dużym słowem jest
zastąpione otrzymanymi słowami. Jeśli bieżące duże słowo jest pierwszym w
linii lub następuje po jednym ze znaków „;”, „|”, „&”, „(” lub „)” i nie
zawierają ukośnik („/”), wówczas następuje rozwinięcie polecenia; w przeciwnym razie nazwa pliku
rozbudowa została wykonana. Rozszerzenie poleceń dotrze do wielkiego słowa przeciwko wszystkim
aliasy, funkcje i wbudowane polecenia, a także wszelkie znalezione pliki wykonywalne
przeszukując katalogi w parametrze PATH. Rozszerzenia nazw plików są zgodne
duże słowo przeciwko plikom w bieżącym katalogu. Po rozszerzeniu
kursor znajduje się tuż za ostatnim słowem, a edytor znajduje się w trybie wstawiania.

[n]\, [n]^F, [n] , I [n]
Uzupełnianie nazw poleceń/plików. Zastąp obecne duże słowo najdłuższym
unikalne dopasowanie uzyskane po wykonaniu polecenia i rozwinięciu nazwy pliku.
jest rozpoznawany tylko wtedy, gdy vi-tabcomplete opcja jest ustawiona, podczas gdy jest tylko
rozpoznany, jeśli vi-esckompletny opcja jest ustawiona (patrz zestaw -o). Jeśli n jest specyficzne,
dotychczasowy nwybrane jest możliwe uzupełnienie (zgodnie z nazwą polecenia/pliku
polecenie wyliczenia).

= i ^E Wyliczenie nazw poleceń/plików. Lista wszystkich poleceń lub plików pasujących do
aktualne wielkie słowo.

^V Wyświetl wersję mksz. Bieżący bufor edycji zostanie przywrócony, gdy tylko a
klawisz jest wciśnięty. Naciśnięcie klawisza przywracającego jest ignorowane.

@c Ekspansja makro. Wykonaj polecenia znalezione w aliasie c.

Komendy ruchu wewnątrz linii:

[n]ręka [n]^H
Przesuń w lewo n postacie.

[n]grunt [n]
Ruch w prawo n postacie.

0 Przejdź do kolumny 0.

^ Przejdź do pierwszego znaku innego niż spacja.

[n]| Przejdź do kolumny n.

$ Przejdź do ostatniego znaku.

[n]b Cofnij się n słów.

[n]B Cofnij się n duże słowa.

[n]e Przejdź do końca słowa, n razy.

[n]E Przejdź do końca dużego słowa, n razy.

[n]w Przejdź do przodu n słów.

[n]W Idź do przodu n duże słowa.

% Znaleźć mecz. Edytor oczekuje na najbliższy nawias, nawias lub nawias klamrowy
a następnie przesuwa kursor do odpowiedniego nawiasu, nawiasu lub nawiasu klamrowego.

[n]fc Przejdź dalej do nwystąpienie znaku c.

[n]Fc Przejdź wstecz do nwystąpienie znaku c.

[n]tc Przejdź do przodu, tuż przed nwystąpienie znaku c.

[n]Tc Przejdź do tyłu, tuż przed nwystąpienie znaku c.

[n]; Powtarza ostatnie f, F, tlub T dowództwo.

[n], Powtarza ostatni f, F, tlub T polecenie, ale porusza się w przeciwnym kierunku.

Polecenia ruchu między liniami:

[n]J, [n]+ i [n]^N
Przejdź do nkolejna linijka w historii.

[n]k, [n]-, I [n]^P
Przejdź do npoprzednią linię w historii.

[n]G Przejdź do linii n w historii; Jeśli n nie jest określony, numer pierwszego
używana jest zapamiętana linia.

[n]g Lubię to G, chyba że n nie jest określony, przechodzi do ostatnio zapamiętanej linii.

[n]/ciąg
Przeszukaj wstecz historię dla nlinia zawierająca ciąg; Jeśli ciąg
zaczyna się od „^”, pozostała część ciągu musi pojawić się na początku historii
linia, aby pasowała.

[n]?ciąg
Taki sam jak /, chyba że przeszukuje historię do przodu.

[n]n Wyszukaj nwystąpienie ostatniego szukanego ciągu; kierunek poszukiwań
jest taki sam jak podczas ostatniego wyszukiwania.

[n]N Wyszukaj nwystąpienie ostatniego szukanego ciągu; kierunek poszukiwań
jest przeciwieństwem ostatniego wyszukiwania.

ANSI-CurUp, PC-PgUp
Przenieś znaki z początku linii do bieżącej pozycji kursora jako
wyszukaj ciąg i przeszukaj historię wstecz dla linii zaczynających się od tego
strunowy; zachowaj pozycję kursora. Działa to tylko w trybie wstawiania i zachowuje to
włączone.

Edytuj polecenia

[n]a Dołącz tekst n czasy; przechodzi do trybu wstawiania zaraz po bieżącej pozycji. The
append jest replikowany tylko po ponownym wejściu w tryb poleceń, tj Jest używane.

[n]Tak samo jak a, z wyjątkiem tego, że jest dodawany na końcu linii.

[n]i Wstaw tekst n czasy; przechodzi do trybu wstawiania w bieżącej pozycji. Wstawienie
jest replikowany tylko po ponownym wejściu w tryb poleceń, tj Jest używane.

[n]Ja tak samo jak i, z tą różnicą, że wstawianie odbywa się tuż przed pierwszym niepustym znakiem.

[n]s Zastąp następny n znaki (tzn. usuń znaki i przejdź do wstawki
tryb).

S Zastąp całą linię. Wszystkie znaki od pierwszego niepustego znaku do końca
linii zostaną usunięte i nastąpi przejście do trybu wstawiania.

[n]cprzenieś-cmd
Zmiana pozycji bieżącej na pozycję wynikającą z n przenieś-cmds (tj
usuń wskazany region i przejdź do trybu wstawiania); Jeśli przenieś-cmd is c, Linia
zaczynając od pierwszego niepustego znaku jest zmieniany.

C Zmień od bieżącej pozycji na koniec linii (tj. usuń na koniec
linię i przejdź do trybu wstawiania).

[n]x Usuń następny n postacie.

[n]X Usuń poprzednie n postacie.

D Usuń do końca linii.

[n]dprzenieś-cmd
Usuń z aktualnej pozycji do pozycji wynikającej z n przenieś-cmds;
przenieś-cmd jest poleceniem ruchu (patrz wyżej) lub d, w takim przypadku bieżąca linia to
usunięte.

[n]rc Wymień następny n postacie z postacią c.

[n]R Wymień. Wejdź w tryb wstawiania, ale zamiast wstawiać, zastąp istniejące znaki
przed istniejącymi znakami. Wymiana jest powtarzana n razy.

[n]~ Zmień wielkość liter w następnym n postacie.

[n]yprzenieś-cmd
Szarpnij z aktualnej pozycji do pozycji wynikającej z n przenieś-cmds do
szarpnij bufor; Jeśli przenieś-cmd is y, cała linia jest szarpana.

Y Przesuń od aktualnej pozycji do końca linii.

[n]p Wklej zawartość bufora szarpania zaraz po bieżącej pozycji, n razy.

[n]P Podobnie jak p, chyba że bufor zostanie wklejony w bieżącej pozycji.

Różne polecenia vi

^J i ^M
Bieżąca linia jest odczytywana, analizowana i wykonywana przez powłokę.

^L i ^R
Narysuj ponownie bieżącą linię.

[n] Wykonaj ponownie ostatnie polecenie edycji n razy.

u Cofnij ostatnie polecenie edycji.

U Cofa wszystkie zmiany dokonane w bieżącym wierszu.

PC Home, End, Del i klawisze kursora
Poruszają się zgodnie z oczekiwaniami, zarówno w trybie wstawiania, jak i w trybie poleceń.

wejście i porzucić
Znaki terminala przerwania i wyjścia powodują usunięcie bieżącej linii i
nowy monit do wydrukowania.

Używaj mksh online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    Alt+F
    Alt+F
    Alt-F zapewnia bezpłatne i otwarte oprogramowanie
    alternatywne oprogramowanie dla DLINK
    DNS-320/320L/321/323/325/327L and
    DNR-322L. Alt-F ma Sambę i NFS;
    obsługuje ext2/3/4...
    Pobierz Alt-F
  • 2
    Usm
    Usm
    Usm to zunifikowany pakiet Slackware
    menedżer, który obsługuje automatyczne
    rozwiązanie zależności. To jednoczy
    różne repozytoria pakietów, w tym
    slackware, slacky, p...
    Pobierz usm
  • 3
    Chart.js
    Chart.js
    Chart.js to biblioteka JavaScript, która
    pozwala projektantom i programistom rysować
    wszelkiego rodzaju wykresy przy użyciu HTML5
    element płótna. Chart js oferuje świetne
    tablica ...
    Pobierz Chart.js
  • 4
    iReport-Designer dla JasperReports
    iReport-Designer dla JasperReports
    UWAGA: Obsługa iReport/Jaspersoft Studio
    Ogłoszenie: Od wersji 5.5.0,
    Jaspersoft Studio będzie oficjalnym
    klient projektowy dla JasperReports. iReport
    Wola...
    Pobierz iReport-Designer dla JasperReports
  • 5
    PostInstallerF
    PostInstallerF
    PostInstallerF zainstaluje wszystkie
    oprogramowanie, które Fedora Linux i inne
    nie obejmuje domyślnie, po
    uruchamianie Fedory po raz pierwszy. Jego
    łatwe dla...
    Pobierz PostInstallerF
  • 6
    strace
    strace
    Projekt strace został przeniesiony do
    https://strace.io. strace is a
    diagnostyczne, debugujące i instruktażowe
    śledzenie przestrzeni użytkownika dla systemu Linux. To jest używane
    monitorować...
    Pobierz strace
  • więcej »

Komendy systemu Linux

Ad