Чӣ тавр Барои навиштани "BASH" барои "Loop

Чӣ тавр истифода бурдани BASH "барои" дубора дар скриптҳои пӯшида истифода мешавад

BASH (ки барои Bourne Again Shell мавҷуд аст) забонест, ки аз тарафи Linux ва UNIX дар асоси системаҳои оператсионӣ истифода мешавад.

Шумо метавонед фармонҳои BASH -ро дар дохили тирезаи терминалӣ пас аз дигараш иҷро кунед ё шумо метавонед фармонҳоро ба файли матнӣ барои таҳия намудани скрипти пӯшида илова кунед.

Бузургтарин дар бораи навиштани скеллҳо ин аст, ки шумо метавонед онҳоро боз ва боз такрор кунед. Масалан, тасаввур кунед, ки шумо бояд истифодабарандаи системаро ба система гузоред, иҷозатҳои худро муқаррар кунед ва муҳити худро оғоз кунед. Шумо метавонед фармонҳоро дар як пораи коғаз нависед ва ҳангоми истифодабарандагони нав илова кунед ё метавонед скрипти ягонаро нависед ва танҳо параметрҳоро ба ин скрипт гузаронед.

Забони Навиштаҳо, аз қабили BASH, барномаҳои шабеҳро ҳамчун забонҳои дигар ташкил медиҳанд. Масалан, шумо метавонед параметрҳои воридшавиро барои ворид кардани клавиатура истифода баред ва онҳоро ҳамчун қобилиятҳо нигоҳ медоред. Пас, шумо метавонед ба скрипт барои гирифтани як амале, ки ба арзиши параметрҳои воридшавӣ амал мекунад, гиред .

Қисми калидии ҳар як барномасозии барнома ва қуттии скрипт қобилияти идоракунии як рамзи кодро боз ва боз дорад.

Як қатор роҳҳо барои такрор кардани рамзҳо (инчунин ҳамчун ҳалқаҳо маълуманд) вуҷуд дорад. Дар ин дастур шумо нишон дода метавонед, ки чӣ тавр навиштани "барои" нависед.

A барои параграф қисмати муайяни рамзро дар бар мегирад. Онҳо фоидаоваранд, то ки як қатор фармонҳо давом диҳанд, то он вақте, ки вазъияти мушаххас иҷро карда мешавад, пас онҳо пас аз он қатъ мешаванд.

Дар ин дастур шумо панҷ роҳро истифода мебаред, ки дар як скифаи BASH истифода баред.

Пеш аз оғози оғоз

Пеш аз он ки шумо бо мисолҳои даврӣ оғоз кунед, шумо бояд равзанаи терминалро кушоед ва ин қадамҳоро иҷро кунед:

  1. Ба навиштаи mkdir ворид кунед ( дар бораи mkdir дар ин ҷо бештар фаҳмед )
  2. Ба скриптҳои Cd дохил кунед (ин феҳристро ба скриптҳо тағйир медиҳад )
  3. Санҷиши nano examplen.sh (дар куҷо n намунае, ки шумо кор мекунед)
  4. Саволро ворид кунед
  5. Барои захира кардани CTRL + O ва CTRL + X пахш кунед
  6. Exit examplen.sh bash (боз, бо n ҳамчун намунаи шумо бо кор ҳастед)

Чӣ тавр ба Loop тавассути рӯйхат

#! / bin / bash
барои рақам дар 1 2 3 4 5
кор кунед
echo $ рақами
анҷом дода мешавад
0

Услуби BASH-ро барои "ҳалқаҳо" истифода бурдан аз тарзи дигар барномасозӣ ва достинги забонҳо барои "ҳалқаҳо" аст. Биёед ба поён скрипти ...

Дар BASH "барои" ҳама вақт, изҳоротҳо ва корҳо як маротиба барои ҳар як чиз дар рӯйхат анҷом дода мешаванд.

Дар мисоли боло, рӯйхат ҳама чизест, ки пас аз калима дар (1 2 3 4 5) меояд.

Ҳар боре, ки давраро пахш мекунад, арзиши нав дар рӯйхат ба тағироте, ки пас аз калимаи "барои" муайян карда мешавад . Дар сатри боло, ин хосият рақам номида мешавад.

Эзоҳии echo барои нишон додани маълумот ба экран истифода мешавад.

Бинобар ин, ин намуна рақамҳоро аз 1 то 5 мегирад ва онҳоро якҷоя ба як экран ба экран мебарад:

Чӣ тавр бояд дар байни сарлавҳаҳо ва нуқтаҳои гузариш гузаред

Масъалаи мисоли дар боло зикршуда ин аст, ки агар шумо мехоҳед, ки рӯйхати калонтарро иҷро кунед (мегӯянд, ки 1 то 500), он бояд ҳамаи рақамҳоро дар ҷои якум гузорад.

Ин ба мо намунаи дуюмро нишон медиҳад, ки чӣ тавр нишон додан ба нуқтаи оғоз ва охири:

#! / bin / bash
барои рақам дар {1..10}
кор кунед
echo "рақами"
анҷом дода мешавад
0

Қоидаҳо асосан ҳамон мебошанд. Арзишҳо пас аз калимаи " дар" ба рӯйхат монданро дар бар мегирад, ва ҳар як арзиш дар рӯйхат ба variable (яъне рақами ҷойгиршуда) ҷойгир карда мешавад, ва ҳар боре, ки давра барпо мешавад, баёноти иҷро ва анҷом дода мешавад.

Фарқияти асосӣ ин тарзи ташкилёфта мебошад. Забони curly {} асосан як қаторро ишора мекунад ва диапазони дар ин ҳолат 1 то 10 (ду нуқта ҷудо аз оғози ва охири диапазон) мебошад.

Аз ин рӯ, ин намунаро тавассути ҳар як рақам дар байни 1 ва 10 мегузаронад ва рақами ба экран баромадашударо дар бар мегирад:

Ин ҳамон як гардиш метавонад чунин бошад, ки бо намунаи ибтидоӣ ба намунаи аввал навишта шуда бошад:

барои рақам дар 1 2 3 4 5 6 7 8 9 10

Чӣ тавр ба рақамҳо дар қатор пахш кунед

Намунаи пештара нишон дод, ки чӣ тавр ба сарлавҳаи ибтидоӣ ва охири он гузаред, бинобар ин, мо мебинем, ки чӣ гуна ба рақамҳо гузаштан.

Тасаввур кунед, ки шумо мехоҳед, ки ба 0 ва 100 гузаред, балки танҳо ҳар як даҳумро нишон диҳед. Сутунҳои зерин нишон медиҳанд, ки чӣ тавр бояд амал кунем:

#! / bin / bash
барои рақам дар {0..100.10}
кор кунед
echo "рақами"
анҷом дода мешавад
0

Қоидаҳо асосан ҳамон мебошанд. Рӯйхати, тағйирёбанда ва маҷмӯи изҳоротҳое, ки дар байни кор ва анҷом дода мешаванд, вуҷуд дорад . Рӯйхати ин вақт ин хел мешавад: {0..100.10.10}.

Рақами аввал 0 ва рақами охири 100 мебошад. Рақами сеюм (10) шумораи ададҳоро дар рӯйхат, ки он хоҳад кард.

Аз ин рӯ, намунаи дар боло зикршуда нишон медиҳад:

A Ҷустуҷӯи анъанавии бештар барои Loop

Услуби BASH нависед барои ҳалқаҳо дар муқоиса бо дигар забонҳои барномасозӣ.

Аммо, шумо метавонед барои як тарҷума дар тарзи монанд ба C забони барномасозӣ нависед, монанди:

#! / bin / bash
барои ((рақами = 1; рақами <100; рақами ++))
{{
агар (($ рақами 5% == 0))
сипас
echo "рақами рақами 5-ро тақсим карда мешавад"
ш
}}
0

Доир ба воситаи рақами тағйирёбанда ба 1 (рақами = 1 ) муқаррар карда мешавад. Забони пешрафта нигоҳ дошта мешавад, агар арзиши рақам камтар аз 100 ( рақами <100> ) бошад. Арзиши тағироти рақамӣ бо илова кардани 1 пас аз ҳар як навсозӣ ( рақами ++ ).

Ҳама чизро дар байни сутунҳои ҷовидона ба воситаи ҳар як навъи такрорӣ иҷро кардан мумкин аст.

Миқдори байни сутунҳо арзиши рақамро тафтиш мекунад ва онро бо 5 тақсим мекунад ва боқимонда ба 0 баробар мешавад. Агар боқимонда 0 бошад, рақами 5 тақсим карда мешавад ва сипас дар экран нишон дода мешавад.

Барои намуна:

Агар шумо хоҳед, ки андозаи дубораи тағйирро тағйир диҳед, шумо рақами рақами + + -ро рақам карда метавонед, рақами рақами + 2 , рақами рақам + 5 , рақами рақами + 10 ва ғайра.

Ин метавонад минбаъд ба рақам + = 2 ё рақами + = 5 паст карда шавад .

Намунаи амал

Барои ҳалқаҳо зиёда аз рӯйхати ададҳои такрорӣ истифода карда метавонанд. Шумо дар ҳақиқат истихроҷи дигар фармонҳоро ҳамчун рӯйхат истифода карда метавонед.

Намунаи зерин нишон медиҳад, ки чӣ тавр ба табдил кардани файлҳои аудиоӣ аз MP3 ба WAV :

#! / bin / bash

Рӯйхат дар ин намоиш ҳар як файлест, ки бо папкаи ҷорӣ дар папкаи ҷорӣ ва тағирёбанда файл аст .

Фармони mpg MP3 файлро ба WAV табдил медиҳад. Бо вуҷуди ин, ба шумо лозим аст, ки ин корро бо менеҷери маҷмӯии худ пешакӣ насб кунед.