«BAS» деген жазу үшін «Loop

Қабық сценарийлерінде BASH үшін «for» циклын қалай пайдалануға болады

BASH (Bourne Again Shell) - Linux және UNIX-негізделген операциялық жүйелердің көпшілігінде қолданылатын сценарий тілі.

BASH пәрмендерін терминал терезесінен басқа біреуден кейін іске қосуға болады немесе пәрмендерді мәтіндік файлға қабық сценарийін жасау үшін қосуға болады.

Қабық сценарийлерді жазу туралы ең жақсы нәрсе - оларды қайтадан қайтадан іске қосуға болады. Мысалы, пайдаланушыға жүйеге қосып, олардың рұқсаттарын орнатып, бастапқы ортасын басқарыңыз. Командаларды қағаз парағына жазуға және жаңа пайдаланушыларды қосқанда оларды іске қосуға болады немесе бір сценарий жаза аласыз және параметрлерді сол сценарийге жібере аласыз.

BASH тәрізді сценарийлік тілдер басқа тілдер сияқты бағдарламалау конструкцияларына ие. Мысалы , пернетақтадан енгізуді алу және оларды айнымалылар ретінде сақтау үшін импорттау параметрлерін пайдалануға болады. Сценарийді кіріс параметрлерінің мәніне қарай белгілі бір әрекетті орындау үшін алуға болады.

Кез келген бағдарламалау мен сценарий тілінің басты бөлігі - бірдей код бөлігін қайтадан іске қосу мүмкіндігі.

Кодты қайталаудың бірнеше жолы бар (сонымен қатар циклдар ретінде белгілі). Бұл нұсқаулықта «for» циклын қалай жазу керектігі көрсетіледі.

Цикл үшін кодтың белгілі бір бөлігін қайта-қайта қайталайды. Олар командалардың сериясы белгілі бір шарт орындалмайынша жұмыс істей алатындай пайдалы, содан кейін олар тоқтайды.

Бұл нұсқаулықта BASH сценарийі ішінде for циклін пайдаланудың бес жолы көрсетіледі.

Жұмысты бастау алдында

Циклдік мысалдармен жұмыс істеуді бастамас бұрын терминал терезесін ашып, мына қадамдарды орындаңыз:

  1. Mkdir сценарийлерін енгізіңіз ( мұнда mkdir туралы көбірек біліңіз )
  2. Cd сценарийлерін енгізіңіз (бұл сценарийге каталог өзгертеді )
  3. Nano examplen.sh енгізіңіз (мұндағы n - жұмыс істеп жатқан мысал)
  4. Сценарийді енгізіңіз
  5. CTRL + O пернелерін басып , шығу үшін CTRL + X пернелерін басыңыз
  6. Bash examplen.sh (қайтадан, n бірге жұмыс істеп жатқан мысал)

Тізім арқылы қалай айналдыруға болады

#! / bin / bash
1 2 3 4 5 нөмірінде
істеу
echo $ нөмірі
жасалды
шығу 0

«For» ілмектерін пайдаланудың BASH тәсілі көптеген басқа бағдарламалау және сценарий тілдері «for» ілмектерін өңдеу әдісімен ерекшеленеді. Скриптті төмен түсірейік ...

BASH үшін «for» циклінде барлық әрекеттер тізімдердегі әрбір элемент үшін бір рет орындалады.

Жоғарыда келтірілген мысалда тізім - сөзден кейін келетін барлық нәрсе (яғни 1 2 3 4 5).

Әрбір цикл қайталанса, тізімдегі келесі мән «for» сөзінен кейін көрсетілген ауыспаға кірістіріледі. Жоғарыда көрсетілген айнымалы айнымалы сан деп аталады.

Эхо- мәлімдеме экранға ақпаратты көрсету үшін пайдаланылады.

Сондықтан, бұл мысал 1-ден 5-ке дейінгі сандарды алады және оларды бір-бірінен экранға шығарады:

Басталу және аяқталу нүктесі арасында қалай айналдыруға болады

Жоғарыда келтірілген мысалдағы қиындық, егер сіз үлкен тізімді (яғни 1-ден 500-ге дейін) өңдеуді қаласаңыз, бірінші кезекте барлық сандарды теру керек.

Бұл бізді бастапқы және аяқталу нүктесін қалай көрсету керектігін көрсететін екінші мысалға алып келеді:

#! / bin / bash
{1..10} ішіндегі сан үшін
істеу
echo «$ number»
жасалды
шығу 0

Ережелер негізінен бірдей. Мәндер « in» сөзінен кейін қайталанатын тізімді құрайды және тізімдегі әрбір мән айнымалыға (яғни, санға) орналастырылады және әрбір цикл қайталанса, жасалуы мен жасалуы арасындағы үзінділер орындалады.

Негізгі айырмашылық - тізімнің қалыптасуы. Бүктелген жақшалар {} негізінен диапазонды білдіреді, ал ауқым бұл жағдайда 1-ден 10-ға дейін (екі нүкте басталу мен аяғының соңын бөледі).

Бұл мысал 1 мен 10 аралығындағы әрбір сан арқылы өтеді және экранға келесідей нөмірді шығарады:

Сол цикл осындай мысал бола алады, синтаксис бірінші мысалмен бірдей:

1 2 3 4 5 6 7 8 9 10 нөміріне

Сандардағы сандарды қалай жіберуге болады

Алдыңғы мысал бастапқы және аяқталу нүктесі арасындағы циклды қалай көрсетті, сондықтан енді біз ауқымды сандарды өткізіп жіберуді қарастырамыз.

Сіз 0-ден 100-ге дейін циклды қалайтыныңызды елестетіңіз, бірақ оныншы нөмірді ғана көрсетіңіз. Төмендегі сценарийде бұны қалай істеу керектігі көрсетілген:

#! / bin / bash
{0..100..10 санындағы нөмір үшін
істеу
echo «$ number»
жасалды
шығу 0

Ережелер негізінен бірдей. Тізім, айнымалы және жасалуы мен жасалуы арасында орындалатын мәлімдемелер жиынтығы бар. Бұл жолы келесі жолы: {0..100..10}.

Бірінші нөмір - 0, ал соңғы нөмір - 100. Үшінші нөмір (10) - тізімдегі элементтердің санын жібереді.

Жоғарыда келтірілген мысал келесі шығарылымды көрсетеді:

Өркендеу үшін көбірек дәстүрлі іздеу

Циклдарға арналған BASH тәсілі басқа бағдарламалау тілдерімен салыстырғанда біршама қызық.

Дегенмен, C сияқты бағдарламалау тіліне ұқсас стильде for циклын жаза аласыз:

#! / bin / bash
үшін ((сан = 1, сан <100, сан ++))
{
егер (($ number% 5 == 0))
содан кейін
echo «$ нөмірі 5-ке бөлінеді»
fi
}
шығу 0

Цикл айнымалы санды 1-ге (сан = 1 ) орнату арқылы басталады. Цикл итерацияны жалғастырады, ал санның мәні 100-ден аз ( сан <100 ). Әрбір Итерациядан кейін ( сан ++ ) 1-ге қосу арқылы санның мәні өзгереді.

Бұрыштық қиғаштар арасындағы барлық циклдің әрбір иерарациясы арқылы орындалады.

Брэшес арасындағы бит санның мәнін тексереді, оны 5-ке бөледі және қалғанын 0-ге теңеді. Қалғаны 0 болса, сан 5-ке бөлінеді және экранда көрсетіледі.

Мысалға:

Итерацияның қадамдық өлшемін өзгерткіңіз келсе, ++ нөмірін + number = number + 2 , number = number + 5 немесе number = number + 10 және т.б. сияқты өзгертуге болады.

Бұдан әрі + = 2 нөміріне немесе + = 5 нөміріне дейін азайтылуы мүмкін.

Практикалық мысал

Циклдар сандардың тізімін қайтадан жасай алмайды. Тізім ретінде басқа командалардың шығысын іс жүзінде пайдалануға болады.

Келесі мысал MP3 файлынан WAV- ге аудио файлдарын түрлендіруді көрсетеді:

#! / bin / bash

Бұл мысалдағы тізімде ағымдағы қалтадағы .MP3 кеңейтімі бар әрбір файл және айнымалы файл болып табылады.

Mpg пәрмені MP3 файлын WAV-ке түрлендіреді. Алайда, ең алдымен, сіз бума менеджері арқылы орнатуыңыз керек болуы мүмкін.