Ebben az útmutatóban ellenőrizze, hogyan ellenőrizhető az utolsó parancs bash kilépési kódja és annak néhány lehetséges felhasználása.
Bash Exit Code
Minden shell parancsfájl vagy felhasználó által végrehajtott UNIX / Linux parancs kilépési állapotot hagy. Ez egy egész szám, amely változatlan marad, hacsak nem futtatják a következő parancsot. Ha a kilépési kód 0, akkor a parancs sikeres volt. Ha a kilépési kód nem nulla (1-255), akkor az hibát jelent.
A bash kilépési kódnak sok lehetséges felhasználása van. A legkézenfekvőbb természetesen annak ellenőrzése, hogy az utolsó parancs végrehajtása megfelelő-e, különösen, ha a parancs nem generál kimenetet.
A bash esetében az előző parancs kilépési kódja a „$?”.
A Bash Exit Code ellenőrzése
Indítson el egy terminált, és futtasson bármilyen parancsot.
$ dateEllenőrizze a „$?”A kilépési kódhoz.
$ visszhang $?
Mivel a „date” parancs sikeresen futott, a kilépési kód 0. Mi történne, ha hiba lenne?
Próbálkozzunk egy nem létező parancs futtatásával.
$ abcdEllenőrizze a kilépési kódot.
$ visszhang $?
Ez nem nulla érték, jelezve, hogy az előző parancs nem megfelelően futott.
Most nézze meg a következő parancsot:
$ macskaminta.txt | grep „érme”
Ha egy vagy több csővel rendelkező paranccsal dolgozik, akkor a kilépési kód a csőben utoljára végrehajtott kódé lesz. Ebben az esetben ez a grep parancs.
Mivel a grep parancs sikeres volt, 0 lesz.
$ visszhang $?
Ebben a példában, ha a grep parancs meghiúsul, akkor a kilépési kód nem nulla lesz.
$ macskaminta.txt | grep „abcd”$ visszhang $?
Exit kód beépítése a parancsfájlokba
A kilépési kód szkriptek készítéséhez is használható. Egyszerű felhasználási mód az, ha hozzárendelünk egy shell változóhoz, és együtt dolgozunk vele. Itt van egy minta parancsfájl, amely a kimeneti kódot feltételként használja az adott kimenet nyomtatásához.
$ #!/ bin / bash$ echo "hello world"
$ status = $?
$ [$ status -eq 0] && echo "parancs sikeres" || echo "parancs sikertelen"
Futtatásakor a szkript a következő kimenetet generálja.
Most nézzük meg, mi történik, ha érvénytelen parancs fut.
$ #!/ bin / bash$ random-command
$ status = $?
$ [$ status -eq 0] && echo "parancs sikeres" || echo "parancs sikertelen"
Futtatáskor a kimenet más lesz.
Kilépés kódérték Magyarázat
Ha a kilépési kód nem nulla, akkor az érték 1 és 255 között mozog. Most mit jelent ez az érték?
Bár az érték korlátozott, az egyes értékek magyarázata egyedi a program / szkript számára. Például az „ls” és a „grep” különböző magyarázatot ad az 1. és 2. hibakódra.
$ ember ls$ férfi grep
Kilépés állapotának meghatározása a szkriptben
Szkript írásakor meghatározhatunk egyedi kilépési kód értékeket. Hasznos módszer a könnyebb hibakereséshez. A bash szkriptekben ez az „exit” parancs, amelyet a exit kód értéke követ.
$ exitAz egyezmény szerint a sikeres végrehajtáshoz ajánlott 0-os kilépési kódot rendelni, a maradékot (1-255) az esetleges hibákhoz. Az exit parancs elérésekor a shell parancsfájl végrehajtása leáll, ezért vigyázzon annak elhelyezésére.
Vessen egy pillantást a következő shell parancsfájlra. Itt, ha a feltétel teljesül, a szkript a 0 kilépési kóddal fejeződik be. Ha a feltétel nem teljesül, akkor a kilépési kód 1 lesz.
$ #!/ bin / bash$ if [["$ (whoami)" != gyökér]]; azután
$ echo "Nem root felhasználó."
$ exit 1
$ fi
$ echo "root felhasználó"
$ exit 0
Ellenőrizze a szkript futtatásának eredményét sudo privilégium vagy „root” felhasználó nélkül.
$ ./minta.SH$ visszhang $?
Végső gondolatok
Ez az útmutató bemutatja, hogy mik a kilépési kódok, és hogyan használhatja őket. Bemutatja azt is, hogyan rendelhetünk megfelelő kimeneti kódokat egy bash szkriptben.
Érdekli a bash szkriptelés? Az indulás egyik legegyszerűbb módja, ha saját szkripteket írsz. Nézze meg ezt az egyszerű útmutatót arról, hogyan kell írni egy egyszerű bash szkriptet.
Boldog számítástechnika!