Ụzọ dị iche iche iji gụọ faịlụ na Bash Script Iji Mgbe Loop


Edemede a bụ maka otu esi agụ faịlụ na scripts bash site na iji oge loop. Ịgụ faịlụ bụ ọrụ a na-ahụkarị na mmemme. Ị kwesịrị ịma ụzọ dị iche iche na nke usoro dị mma iji mee ihe. Na bash, enwere ike ịrụ otu ọrụ n'ọtụtụ ụzọ mana enwere ụzọ kachasị mma iji rụọ ọrụ ahụ ma anyị kwesịrị ịgbaso ya.

Tupu ịhụ ka esi agụ ọdịnaya faịlụ site na iji mgbe loop, ngwa ngwa primer ka esi arụ ọrụ loop. Mgbe loop na-enyocha ọnọdụ ma na-atụgharị karịa koodu enyere mgbe ọnọdụ ahụ bụ eziokwu.

while [ CONDITION ]
do
    code block
done

Ka anyị daa mgbe loop syntax.

  • mgbe loop kwesịrị ịmalite site na obere okwu okwu na-esote ọnọdụ.
  • Ekwesịrị itinye ọnọdụ n'ime [] ma ọ bụ [[]]. Ọnọdụ ahụ kwesịrị ịlaghachi eziokwu mgbe niile ka emee loop ahụ.
  • A ga-edowe ezigbo ngọngọ koodu n'etiti ime na eme.

NUMBER=0

while [[ $NUMBER -le 10 ]]
do
    echo " Welcome ${NUMBER} times "
    (( NUMBER++ ))
done

Nke a bụ ọmụmaatụ dị nnọọ mfe, ebe loop na-eme ruo mgbe NUMBER agaghị agafe 10 wee bipụta nkwupụta okwute.

Tinyere mgbe anyị ga-eji iwu na-agụ gụọ ọdịnaya nke ahịrị faịlụ site na ahịrị. N'okpuru ebe a bụ syntax ka esi ejikọta iwu mgbe na ịgụ. Ugbu a enwere ụzọ dị iche iche iji nyefee faịlụ dị ka ntinye na anyị ga-ahụ ha niile.

# SYNTAX
while read VARIABLE
do
    code
done

Ọkụ ọkpọ na Linux

Nọmalị, anyị ga-eji ụdị, wdg.

N'otu aka ahụ, anyị ga-eji iwu nwamba ebe a gụọ ọdịnaya nke faịlụ ahụ wee gbanye ya obere oge. Maka ngosipụta, m na-eji faịlụ /etc/passwd mana ọ bụghị ihe amamihe dị na ya iji faịlụ a mebie ya mere were nnomi ndabere faịlụ a wee kpọọ ya ma ọ bụrụ na ịchọrọ.

cat /etc/passwd | while read LREAD
do
    echo ${LREAD}
done

Ka anyị kwatuo ihe ga-eme mgbe etinyere koodu dị n'elu.

  • cat /etc/passwd ga-agụ ọdịnaya dị na faịlụ ahụ wee bufee ya dị ka ntinye site na ọkpọkọ.
  • agụ iwu na-agụ ahịrị ọ bụla gafere dị ka ntinye sitere na iwu cat wee chekwaa ya na mgbanwe LREAD.
  • ịgụ iwu ga-agụ ọdịnaya faịlụ ruo mgbe a tụgharịrị EOL.

Ị nwekwara ike iji iwu ndị ọzọ dị ka isi, ọdụ, na ọkpọkọ na mgbe loop.

head -n 5 /etc/passwd | while read LREAD
do
    echo ${LREAD}
done

Ntinye ntụgharị na Linux

Anyị nwere ike ibugharị ọdịnaya nke faịlụ ahụ ka ọ bụrụ loop site na iji onye ọrụ ntụgharị ntinye (<).

while read LREAD
do
    echo ${LREAD}
done < /etc/passwd | head -n 5

Ị nwekwara ike chekwaa aha faịlụ ahụ na mgbanwe ma nyefee ya na onye na-ahụ maka ntụgharị.

FILENAME="/etc/passwd"

while read LREAD
do
    echo ${LREAD}
done < ${FILENAME}

Ị nwekwara ike ịnyefe aha faịlụ dị ka arụmụka na edemede gị.

while read LREAD
do
    echo ${LREAD}
done < $1 | head -n 5

Nkewa Ubi Ime

Ị nwere ike iji ụdị ụdị faịlụ dị iche iche rụọ ọrụ (CSV, TXT, JSON) ma ị nwere ike ịchọrọ ikewa ọdịnaya nke faịlụ ahụ dabere na njedebe omenala. N'okwu a, ịnwere ike iji \Internal field separator (IFS) kewaa ọdịnaya nke faịlụ ma chekwaa ya na mgbanwe.

Ka m gosi otú o si arụ ọrụ. Lelee faịlụ /etc/passwd nke nwere oghere (:) dị ka ihe nkpuchi. Ị nwere ike kewaa okwu ọ bụla n'ahịrị wee chekwaa ya na mgbanwe dị iche.

N'ihe atụ dị n'okpuru, m na-ekewa faịlụ /etc/passwd na colon dị ka onye na-ekewapụ m ma na-echekwa nke ọ bụla n'ime mgbanwe dị iche iche.

while IFS=":" read A B C D E F G
do
    echo ${A}
    echo ${B}
    echo ${C}
    echo ${D}
    echo ${E}
    echo ${F}
    echo ${G}
done < /etc/passwd

Egosiputara m naanị otu ahịrị kewara na nseta ihuenyo dị n'elu na-atụle nha nseta ihuenyo.

Ahịrị efu na Linux

A naghị eleghara ahịrị efu anya mgbe ị na-elele ọdịnaya faịlụ ahụ. Iji gosi nke a, emepụtara m faịlụ nlele nwere ọdịnaya dị n'okpuru. Enwere ahịrị 4 na ahịrị efu ole na ole, na-eduga oghere ọcha, na-eso oghere ọcha, mkpụrụedemede taabụ n'ahịrị 2, yana ụfọdụ mkpụrụedemede mgbapụ ( na).

while read LREAD
do
    echo ${LREAD}
done < testfile

Hụ nsonaazụ ya, ahịrị oghere anaghị eleghara anya. Ọzọkwa, ihe na-adọrọ mmasị ịmara bụ ka esi ewepụ oghere ọcha site n'iwu ọgụgụ. Ụzọ dị mfe isi leghara ahịrị oghere anya mgbe ị na-agụ ọdịnaya faịlụ bụ iji onye ọrụ nyocha nwere ọkọlọtọ -z nke na-enyocha ma ogologo eriri ahụ abụghị efu. Ugbu a, ka anyị kwugharịa otu ihe atụ mana oge a na onye ọrụ nyocha.

while read LREAD
do
    if [[ ! -z $LREAD ]]
    then
        echo ${LREAD} 
    fi
done < testfile

Ugbu a site na mmepụta, ị nwere ike ịhụ ahịrị efu na-eleghara anya.

Ndị agwa mgbapụ

Wepụ mkpụrụedemede dị ka , ,

while read LREAD
do
    echo ${LREAD}
done < testfile

Ị nwere ike ịhụ site na mpụta ụzọ mgbapụ mkpụrụedemede atụfuola ihe ha pụtara na naanị n na t ka ebipụtara kama na . Ị nwere ike iji -r iji gbochie ntụgharị okwu azụ azụ.

while read -r LREAD
do
    echo ${LREAD}
done < testfile

Nke ahụ bụ maka akụkọ a. Ọ ga-amasị anyị ịnụ azụ gị ma ọ bụrụ na enwere nzaghachi ma ọ bụ ndụmọdụ ọ bụla. Nzaghachi gị bụ ihe na-enyere anyị aka ịmepụta ọdịnaya ka mma. Nọgide na-agụ ma nọgide na-akwado.