Speciális karakterek és a szűrés
A karakterek száma a parancsok speciális szimbólumok. Ez azt jelenti, hogy nem kerülnek át a program indításához vagy a parancs felvezető belső héj és feldolgozott ELŐTT a parancs végrehajtásakor. Azaz, a speciális karakterek által ellenőrzött héj is. Néhány ilyen karakterek a következők:
Ha azt szeretnénk, hogy héj nem kerül feldolgozásra különleges módon speciális karakter és kezel, mint a rendszeres jellegű, meg kell megszökött. Háromféle módon lehet megtenni:
1. Tegyen egy fordított perjel (\), mielőtt a különleges karakter (angol, ezt a módszert nevezik a menekülés). Sam backslash, illetve szintén egy különleges karakter, és azt is vizsgálni (azaz fel két vágás, \\). Például:
grep szerencsés \ * csillag az én \ file # Keresek egy szerencsés * csillag sort a fájl a fájlt,
Backslash előtt a szokásos, nem egy speciális karakter figyelmen kívül hagyja.
2. Írja be egy parancsot vagy része a csapatnak speciális karakterek idézőjelben ( „) Az angol, ezt a módszert nevezik idézet Double idézetek átvizsgáljuk a legtöbb speciális karakterek, de nem az összes többi speciális karakterek belül dupla idézőjelek kerülhessen a backslash példa .....:
grep „szerencsés * csillag”, „az én file” # Hasonlóan az előző parancs
A fordított perjel belül idézőjelben előtt egy közönséges karakter vagy szimbólum nélkül átvizsgáljuk idézőjelek kezelik árnyékolt perjel. De lehet kifejezetten megszökött. Ez azt jelenti, hogy az echo parancs „hello \ perjel” és echo „hello, \\ perjel” hozza a képernyő ugyanaz: hello, \ perjel.
3. Írja be a parancsot, vagy része a csapatnak az aposztróf jelet (angol, ez a módszer is nevezik idézetet). Ők vizsgálják meg az összes speciális karaktereket. például:
# Keresse meg a sort a $ 1,000 fájlt a jövedelem
grep "$ 1000 "saját bevétel"
# A „$” nem árnyékolja idézőjelben és egyetlen - szitáljuk.
A fordított perjel belül dupla idézőjelek is mindig úgy árnyékolva. Az echo 'hello, \\ perjel' jelenít hello, \\ perjel.
Következtetés A fájl
A legvalószínűbb, hogy lesz valaha is, hogy írjon az egész egy parancs kimenete egy fájlba. Legyen egyszerű: parancs> fájlnév
# Összes sor tartalmazza a string „loruser” a / etc / passwd
# És írd fel azokat a „myfile” fájlt a „Dokumentumok” a saját könyvtárban.
grep loruser / etc / passwd>
Ebben az esetben fontos, hogy minden program két stream output: stdout és stderr. A program maga határozza meg, hogy mely üzeneteket bármely kimeneten. Ha átirányítja a kimeneti stream csak a hiba nem kerül rögzítésre a fájlban, és jelenik meg a képernyőn (és fordítva). Átirányítani hibafolyamot használja a következő szintaxist: parancs 2> fájlnév
Fájlt is küldhet két stream:
parancs> fayl_dlya_vyvoda 2> fayl_dlya_oshibok
grep loruser / etc / passwd>
Ha irányítsa át a kimenetet egy fájlba, vagy hiba fájl teljesen felülírt (vagy létrejön, ha nem létezik). Még ha nem jelenik meg semmi, akkor a fájl felülírja, és helyébe egy üres.
Hozzáfűzni a kimeneti fájl, mentés az előző tartalmát, használja a kettős jel „több” helyett egy. Azaz:
command >> file # megjelenítéséhez
2. csapat >> file # hibák
Talán van egy másik kérdés: hogyan lehet egy programot, hogy olvassa el az adatokat a fájlt, mintha bemenet a billentyűzet?
De ha biztos abban, hogy nincs ilyen funkció, akkor is küld adatokat a fájlt a bemeneti folyam a program:
Igen, akkor össze a bemeneti és kimeneti átirányítás:
csapat <файл_для_ввода> fayl_dlya_vyvoda
Egy konkrét kiviteli alak a átirányítás szoftver szervezési csatornán (szállítószalag). Ehhez a két vagy több csapat, oly módon, hogy a termelés a korábbi bemenete a következő, csatlakozik (vagy külön, ha tetszik jobban) cső szimbólum - „|”. Ebben az esetben a szabványos kimenet parancsot a bal oldalon a szimbólum |, küldik a szabványos bemenetről a program, hogy a jel jobb |.
Meg kell jegyezni, hogy a köpeny ugyanakkor az, hogy elvégezhessék a parancsokat tartalmazza a futó szállítószalag az egyes csapatok külön Például a héj, hogy amint az első program elindul, hogy adja ki semmit a kimeneti áramot, a következő parancs elindítja a folyamatot. Hasonlóképpen, minden következő parancsot hajt végre annak működését, adatokat vár a korábbi parancsot, és halad az eredményeket a későbbi bemenet. Ha azt szeretnénk, hogy győződjön meg valamilyen csapat teljesen befejezett megkezdése előtt a következő, akkor ugyanabban a sorban a csővezeték karakter |, és a pontosvessző ;. Mielőtt minden pontosvessző shell leáll, és várja a végén az összes előző utasítás tartalmazza a szállítószalag.
Szűrők - a parancsok (vagy programok), amely elfogadja bemeneti adatfolyam, termelő rajta, némi átalakítás és egy szabványos kimenetre (ahol lehet irányítani máshol a felhasználó). Között a szűrőket parancsok közé parancsok cat, több, kevesebb, wc, cmp, diff, és a következő parancsokat.
5.1 táblázat. csapatok szűrők