Shell parancsfájl futtatása Linuxban [Essentials Explained for Beginners]]

kétféle módon lehet futtatni egy shell szkriptet Linuxban. Használhatja:

bash script.sh

vagy végrehajthatja a shell szkriptet így:

./script.sh

ez talán egyszerű, de nem sok mindent magyaráz meg. Ne aggódjon, megteszem a szükséges magyarázatokat példákkal, hogy megértse, miért használnak egy adott szintaxist az adott formátumban egy shell szkript futtatása közben.

ezt az egysoros shell szkriptet fogom használni, hogy a dolgok a lehető legegyszerűbbek legyenek:

:~/Scripts$ cat hello.sh echo "Hello World!"

1. módszer: shell parancsfájl futtatása úgy, hogy a fájlt argumentumként átadja a shellnek

az első módszer magában foglalja a szkriptfájl nevének argumentumként történő átadását a shellnek.

figyelembe véve, hogy a bash az alapértelmezett shell, futtathat egy ilyen szkriptet:

bash hello.sh

ismeri ennek a megközelítésnek az előnyeit? A szkriptnek nem kell rendelkeznie a végrehajtási engedéllyel. Nagyon praktikus a gyors és egyszerű feladatokhoz.

Shell parancsfájl futtatása Linux
shell parancsfájl futtatása Linux

ha még nem ismeri, azt tanácsolom, hogy olvassa el a Linux Fájl engedélyével kapcsolatos részletes útmutatómat.

ne feledje, hogy egy shell szkriptnek kell lennie, amelyet argumentumként ad át. A shell parancsfájl parancsokból áll. Ha normál szöveges fájlt használ, akkor panaszkodik a helytelen parancsokról.

szövegfájl futtatása parancsfájlként Linux alatt
szövegfájl futtatása parancsfájlként

ebben a megközelítésben kifejezetten megadta, hogy a parancsfájl értelmezőjeként bash-t szeretne használni.

a Shell csak egy program, a bash pedig annak megvalósítása. Vannak más ilyen héjprogramok is, mint a ksh, zsh stb. Ha más héjak vannak telepítve, akkor ezt is használhatja a bash helyett.

például telepítettem a zsh-t, és ugyanazt a szkriptet futtattam:

Shell parancsfájl végrehajtása Zsh
shell parancsfájl végrehajtása Zsh segítségével

ajánlott olvasmány:

2. módszer: hajtsa végre a shell parancsfájlt az elérési út megadásával

a shell parancsfájl futtatásának másik módja az elérési út megadása. De ahhoz, hogy ez lehetséges legyen, a fájlnak végrehajthatónak kell lennie. Ellenkező esetben az” engedély megtagadva ” hiba lép fel, amikor megpróbálja végrehajtani a szkriptet.

tehát először meg kell győződnie arról, hogy a szkript rendelkezik a végrehajtási engedéllyel. A chmod paranccsal megadhatja magának ezt az engedélyt:

chmod u+x script.sh

miután a szkript végrehajtható, csak annyit kell tennie, hogy beírja a fájlnevet annak abszolút vagy relatív elérési útjával együtt. Leggyakrabban ugyanabban a könyvtárban van, így csak így használja:

./script.sh

ha nem ugyanabban a könyvtárban van, mint a szkript, megadhatja a szkript abszolút vagy relatív elérési útját:

shell parancsfájl futtatása más könyvtárban
shell parancsfájl futtatása más könyvtárban

azt ./ mielőtt a szkript fontos (ha ugyanabban a könyvtárban van, mint a szkript)

shell parancsfájlok végrehajtása Linux

miért nem használhatja a szkript nevét, ha ugyanabban a könyvtárban van? Ez azért van, mert a Linux rendszerek keresi a futtatható futtatni néhány kiválasztott könyvtárakat, amelyek meg vannak adva a PATH változó.

itt van a PATH változó értéke a rendszeremhez:

:~$ echo $PATH/home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

ez azt jelenti, hogy a következő könyvtárak egyikében végrehajtási engedélyekkel rendelkező fájlok a rendszer bármely pontjáról végrehajthatók:

  • /otthon / abhishek/.helyi/kuka
  • /usr/helyi/kuka
  • /usr/helyi/kuka
  • /usr/kuka
  • /usr/kuka
  • /sbin
  • /bin
  • /bin
  • /usr/local/games
  • /snap/bin

a Linux parancsok binárisai vagy futtatható fájljai, mint például az ls, Cat stb, Ezen könyvtárak egyikében találhatók. Ez az, amiért meg tudja futtatni ezeket a parancsokat bárhonnan a rendszer csak használja a nevüket. Lásd: az ls parancs a /usr/bin könyvtárban található.

a parancs Linux megkeresése

ha a parancsfájlt abszolút vagy relatív elérési út nélkül adja meg, akkor az nem található meg a PATH változóban említett könyvtárakban.

miért tartalmaz a legtöbb shell szkript #! / bin / bash a shell szkriptek elején?

ne feledje, hogyan említettem, hogy a shell csak egy program, és a shelleknek különböző implementációi vannak.

amikor a #! / bin / bash, akkor adja meg, hogy a script futtatni bash mint tolmács. Ha ezt nem teszed meg, és futtatsz egy szkriptet .forgatókönyv.sh módon, ez általában fut bármilyen shell fut.

számít ez? Lehet. Lát, a legtöbb shell szintaxis gyakori mindenféle shell, de néhány eltérhet.

például a tömb viselkedése eltérő a bash és zsh héjakban. A zsh-ban a tömb index 1-nél kezdődik 0 helyett.

 Bash Vs Zsh
Bash Vs Zsh

Használata #! a / bin / bash azt jelzi, hogy a parancsfájl bash shell parancsfájl, és a Bash parancsértelmezővel kell futtatni, függetlenül a rendszeren használt parancsértelmezőtől. Ha zsh specifikus szintaxist használ, akkor a #! /bin / zsh, mint a szkript első sora.

a#! / bin / bash nem számít. Használhatja a#!/ kuka / bash.

hasznos volt?

remélem, hogy ez a cikk hozzáadta a Linux ismereteit. Ha továbbra is kérdése vagy javaslata van, kérjük, hagyjon megjegyzést.

a szakértő felhasználók továbbra is kiválaszthatják ezt a cikket azokról a dolgokról, amelyeket kihagytam. De az ilyen kezdő témákkal az a probléma, hogy nem könnyű megtalálni az információk megfelelő egyensúlyát, és elkerülni a túl sok vagy túl kevés részletet.

ha érdekel a tanulás bash script, van egy egész Bash kezdő sorozat a sysadmin fókuszált honlapján Linux kézikönyv. Ha szeretné, megvásárolhatja az e-könyvet további gyakorlatokkal a Linux kézikönyv támogatásához.

tetszik, amit olvastál? Kérjük, ossza meg másokkal.

50részvények
  • Facebook0
  • Twitter49
  • LinkedIn1
  • Reddit0

Leave a Reply

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.