Mụta ihe dị iche n'etiti isi mmalite na ịhịa aka na Bash


Isi ihe na-elekwasị anya n'isiokwu a bụ ịghọta nke ọma ihe na-eme mgbe ị na-agba ọsọ edemede vs isi edemede na bash. Nke mbụ, anyị ga-aghọta nke ọma ka esi nyefee mmemme ahụ mgbe ị na-akpọ edemede ahụ n'ụzọ dị iche iche.

IHE: imepụta edemede na ndọtị adịghị mkpa. Ederede ga-aga nke ọma ọbụlagodi na enweghị ndọtị.

N'ụzọ bụ isi, edemede ọ bụla na-amalite site na ahịrị a na-akpọ shebang(#!). A ga-atụgharịkwa akara Hash na bash dị ka nkọwa mana shebang nwere ihe pụrụ iche. Ọ na-agwa bash ka ọ nyefee mmemme na ntụgharị okwu ọ bụla ị kpọtụrụ aha na shebang.

N'okpuru bụ usoro ihe atụ ma ana m akọwa bash ka onye ntụgharị okwu m.

$ cat >> Hello_World.sh
#!/usr/bin/env bash
echo "Hello world"

$ chmod +x Hello_world.sh

Ugbu a iji mee edemede ahụ, ị nwere ike ime ya n'ụzọ abụọ.

  • Jiri ụzọ ikwu na-akpọ edemede ahụ. Gaa na ndekọ ebe ederede dị wee mee ./Hello_world.sh.
  • Jiri ụzọ zuru oke iji kpọọ edemede ahụ. Site na ebe ọ bụla na sistemụ faịlụ pịnye ụzọ zuru oke na edemede.

$ ./Hello_world.sh
$ pwd
$ /home/karthick/Hello_world

Ugbu a, ka anyị hụ ihe na-eme mgbe ị na-agbalị ịnyefe mmemme gị n'enweghị shebang. Na enweghị shebang, a ga-edobe mmemme ahụ na shei ọ bụla ugbu a ị na-eji, N'ọnọdụ m, ọ bụ Bash (/ bin/bash).

Ka m gosi otu ihe atụ. M na-eke edemede python na-enweghị shebang na mgbe m na-akpọ mmemme ahụ, bash amaghị na ọ ga-edozi ihe omume a na onye ntụgharị okwu kama ọ ga-eme mmemme ahụ na shei ugbu a.

$ cat > run-py.py
echo $SHELL
print("Hello world")

$ chmod +x run-py.py
$ ./run-py.py

N'okwu a, ịnwere ike ịkpọ mmemme ahụ site na ịkọwa onye ntụgharị okwu kwesịrị idobere ya ma ọ bụ tinye naanị ahịrị shebang nke a na-atụ aro ya mgbe niile.

# which python3
$(which python3) /home/karthick/run_py.py

Ugbu a ịmara ka esi akpọ edemede ahụ, nzọụkwụ ọzọ ga-abụ ịghọta ihe na-eme mgbe anyị kpọrọ edemede ahụ. Mgbe ị na-akpọ edemede ahụ dị ka egosiri na ihe atụ ndị a dị n'elu, ọ ga-emepụta usoro ụmụaka (ịkwado) na a ga-edobe edemede ahụ na usoro nwatakịrị. M na-agba ọsọ a sample script ga dị nnọọ na-agba ọsọ na-esonụ iwu na-egosi na e debere script na a nwa usoro.

$ ps -ef --forest | grep -i bash

Enwere ike inwe ọtụtụ usoro ụmụaka dịka akụkụ nke edemede na nke ahụ dabere na koodu anyị. A ga-amata na mgbanwe gburugburu ebe obibi mebere site na ndenye aha ga-adaba ozugbo ọ mechara. Usoro ụmụaka nwere ike ịnweta mgbanwe dị iche iche nke usoro nne na nna kere site na mbupụ ha. Mana usoro nne na nna enweghị ike ịnweta mgbanwe nke usoro nwatakịrị kere.

Lelee akụkọ ndị dị n'okpuru ka ị ghọtakwuo ka ndị mgbanwe si arụ ọrụ yana otu esi ebupụ mgbanwe ndị ahụ.

  • Nghọta na ide 'Linux Variables' na Shell Scripting
  • Mụta Ọdịiche Dị n'etiti $$na $BASHPID na Bash

Na-enweta edemede ahụ

\Isi iyi bụ iwu arụnyere n'ime shei nke na-agụ faịlụ agafere dị ka arụmụka na ya wee na-agba koodu na gburugburu shei ugbu a. Otu ihe eji eme ihe kwesịrị ekwesị nke ị na-ejikarị bụ imezi nhazi gị na .bashrc ma ọ bụ .bash_profile wee bugharịa mgbanwe ndị ahụ site na iji iwu isi mmalite.

$ type -a source

Enwere ụzọ abụọ syntactic iji mee iwu isi iyi. Ị nwere ike họrọ onye ọ bụla na abụọ syntaxes na ọ bụ nke onwe nhọrọ.

$ source FILE_NAME [ARGUMENTS]
$ . FILE_NAME [ARGUMENTS]

Ka m gosi otú isi iyi si arụ ọrụ n'ezie. M ga-emepụta scripts shei abụọ. Edemede mbụ (Module.sh) ga-ejide ụfọdụ mgbanwe na ọrụ. Edemede nke abụọ (Main.sh) na-aga ibipụta mgbanwe wee kpọọ ọrụ ahụ.

Modul faịlụ.sh.

#!/usr/bin/env bash

VAR1=$(echo "Welcome to $1")

function f1(){
  echo “Function f1 is called”
}

Faịlụ Main.sh.

#!/usr/bin/env bash

echo $VAR1
f1

Tọọ ikike igbu maka script wee kpọọ isi edemede \main.sh Ugbu a, edemede a ga-agbalị ịchọta ọrụ f1 na agbanwe VAR1 na nke ugbu a. gburugburu shei ga-ada na iwu ahụghị.

$ bash main.sh

Ugbu a, ka anyị tinye iwu isi mmalite n'ime edemede nke ga-ebufe mgbanwe na ọrụ n'ime ebe shei dị ugbu a na nke ahụ ga-enweta site na \main.sh.

Modul faịlụ.sh.

#!/usr/bin/env bash

VAR1=$(echo "Welcome to $1")

function f1(){
  echo "Function f1 is called"
}

Faịlụ Main.sh.

#!/usr/bin/env bash

source module.sh Tecmint
echo $VAR1
f1

Ugbu a megharịa edemede ahụ ọzọ wee hụ.

$ bash main.sh

Isi mmalite bara ezigbo uru na bash iji soro usoro mmemme modular n'ịmepụta edemede shei anyị. Anyị nwere ike imebi koodu anyị n'ime obere modul ma enwere ike iji ya mee ihe n'ọtụtụ mmemme. N'ụzọ ndị a, anyị nwere ike ịgbaso ụkpụrụ DRY (Emeghachila Onwe Gị).

Nke ahụ bụ maka akụkọ a. Anyị atụlewo nkenke ihe dị iche n'etiti isi mmalite na ndụdụ na bash. Gaa na akụkọ ahụ ma kesaa nzaghachi gị bara uru na anyị.