Бас бағдарламалау - 1 бөлім

Әдетте біз оны әкімшілік немесе файлдарды басқару операциялары үшін қолданамыз консоль de Linux оның функционалдығын осы мақсаттан әлдеқайда кеңейтіп, бағдарламалауға мүмкіндік береді сценарийлер Бұл нұсқаулық Bash тілінде бағдарламалау туралы толық анықтамалық емес, сонымен қатар GNU / Linux жүйесінің қуатын кеңейтуге мүмкіндік беретін негізгі командалар мен құрылымдарға кіріспе болуы керек.

«Сценарий» дегеніміз не?

Негізінен бұл жүйе белгілі бір тапсырма үшін қолданатын белгілі бір бағдарламалау тілінде жазылған кодты файл деп айтамыз. Ол үшін сыртқы енгізу немесе графикалық интерфейс қажет емес, бірақ ол өңделген мәліметтердің шығуын тудыруы керек (қолданушы оны көрмесе де).

Баш қолданатын тілді өзінің аудармашысы анықтайды және басқа Shell синтаксисін біріктіреді, мысалы Korn Shell (ksh) немесе C Shell (csh). Әдетте консольде қолданылатын көптеген командалар сценарийлерде қолданыла алады, тек белгілі бір дистрибутивке қатысы жоқ.

Сценарий құрылымы

Бастау үшін бізде мәтіндік редактор және бағдарламалауға деген ниет болу керек. Біз .sh кеңейтілімімен сақтайтын файлдарды консоль орындай алады (немесе түсіндіре алады), егер бірінші жол келесі болса:

#! / bin / bash

Бұл жүйеге файлды іске қосу үшін консольді қолдануға кеңес береді. Сонымен қатар, # таңбасы түсініктемелер жазуға мүмкіндік береді. Қарапайым мысал жасау үшін келесі суретте тағы бір жолды қосамыз:

Echo командасы экранда хабарлама шығарады, бұл жағдайда әдеттегі «Hello world!» Егер біз оны сақтап, консольмен орындасақ, нәтижесін көреміз.

Негізгі командалар

Келесі командалар кең таралған және кез-келген бағдарлама түріне өте пайдалы. Біз олардың көп екенін нақтылаймыз, бірақ әзірге келесілерді қарастырамыз.

Бүркеншік аттар: сөздер тізбегін қысқартуға мүмкіндік береді, бұл кодты азайтуға мүмкіндік береді.

# per = '/ home / user / Downloads' деген псевдонимге арналған # Жүктеулер қалтасының псевдонимінің мекен-жайы бойынша бүркеншік ат жасаңыз

break: а, while, дейін циклынан бірден шығуға мүмкіндік береді немесе циклды таңдауға мүмкіндік береді (ілмектерді кейінірек егжей-тегжейлі қарастырамыз)

# 1-ден 5-ке дейінгі сандарды тағайындайтын цикл жасаңыз # 1 «циклдің бұрылысы» үшін 2 3 4 5 3-те # Біз $ echo таңбасымен талданатын # есептегіштің ағымдағы мәнін шығарамыз « $ counter ”# Егер есептегіш мәні 3-ке тең болса, егер [$ counter –eq XNUMX] болса, онда # break үзіліс циклынан шығады.

жалғастыру - үзіліске ұқсас, тек ол ағымдағы циклды елемей, келесіге ауысады.

# 1-ден 5-ке дейінгі сандарды тағайындайтын цикл жасаңыз # 1 «циклдің бұрылысы» үшін 2 3 4 5 3-те # Егер есептегіш мәні 3-ке тең болса, егер [$ counter -eq 3] болса, онда # Жалғастыру ағымдағы айналымның қалған бөлігін келесі айналымға өту арқылы талдауға жол бермейді, яғни # XNUMX мәні басылмайды. жалғасы «$ counter» орындалды

декларациялау: айнымалыларды жариялайды және оларға теру сияқты мәндер тағайындайды (олар дәл осылай жұмыс істейді). Біз оны бірнеше опциялармен біріктіре аламыз: -i бүтін сандарды жариялайды; -r мәнін өзгерту мүмкін емес тек оқуға болатын айнымалылар үшін; –А массивтерге немесе “массивтерге”; -f функциялар үшін; -х сценарийдің қоршаған ортасынан тыс «экспорттауға» болатын айнымалылар үшін.

жариялау –i num = 12 жариялау –x pi = 3.14

анықтама: белгілі бір команда үшін анықтама көрсетеді.

жұмыс орындары: жүріп жатқан процестерді көрсетеді.

#C –мен командалардың атын көрсетеміз, –p # көмегімен әр процестің pid (процесс идентификаторы). жұмыс орындары

рұқсат етіңіз: арифметикалық өрнекті бағалау

a = 11 болсын a = a + 5 # Ақырында a мәнін шығарамыз, ол 16 echo «11 + 5 = $ a»

локалды: қателіктерді болдырмау үшін сценарийдің функцияларында қолданылуы керек жергілікті айнымалыларды жасаңыз. Сіз декларация командасымен бірдей функцияларды қолдана аласыз.

local v1 = «Бұл жергілікті айнымалы»

шығу: Shell-ден толық шығуға мүмкіндік береді; exit пәрмені бір уақытта бір терезені тоқтатуға мүмкіндік беретін бірнеше қабықшалы тереземен жұмыс жасайтын жағдайлар үшін пайдалы.

printf: деректерді басып шығаруға және оларды форматтауға мүмкіндік береді. Оның көптеген нұсқалары бар, сондықтан біз олардың кейбіреулерін атап өтеміз.

#% f өзгермелі сан түрінде шығады, жаңа # жолға арналған n үшін басып шығару «% fn» 5 5.000000 # & d ондық сандарды аргумент ретінде беруге мүмкіндік береді printf «% d тапсырыс берілген% d доллар.n» 20 500 20-ге бағаланған 500 тапсырыс бар Доллар.

оқу: стандартты кірістегі жолды оқу (мысалы, пернетақта арқылы деректерді жүктеуде қолданылатын модуль). Біз келесідей нұсқаларды жібере аламыз: - оқудың шектелген уақытын беру; -а әр сөз анам массивіндегі орынға тағайындалатындай; -d жолдың соңында жазылатын бөлгішті қолдану; басқалардың арасында.

echo «Өз атыңызды енгізіп, ENTER пернесін басыңыз» # айнымалы атауын оқып, оқылатын есімді қайталаңыз «Сіздің атыңыз $ name»

типі: команданы және оның мінез-құлқын сипаттайды. Әр команда үшін мәліметтер анықтамаларын табу пайдалы болуы мүмкін.

типі - a '[' # типі бізге [бұл Shell builtin командасы [[Shell builtin # # -а Shell builtin # -а] жазылған атпен орындалатын # бар каталогтарды табуға мүмкіндік береді. [is / usr / bin / [

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

# Біз қолданыстағы шектеулерді көреміз ulimit - a # -f пайдаланушылардың 512000 Kb (500 #Mb) ulimit –f 512000 # -v-тен үлкен файлдарды жасай алмауын шектеуге мүмкіндік береді, бұл процестің виртуалды жадын шектейді. ulimit - v 512000

күте тұрыңыз: белгілі бір процестің немесе жұмыстың жалғасуын күтіңіз.

# Сценарий №2585 pid процесінің орындалуын күтеді

2585

Сценарийлерге қосуға болатын басқа пайдалы командалар шартты белгілермен ұсынылған.

!!: соңғы команданы қайтадан іске қосыңыз

! wer: «wer» өрнегімен басталған соңғы команданы орындайды.

'==', '! =', '>', '<', '> =' және '<=': қатынас операторлары.

|: OR операторы әдетте екі тұрақты өрнекті біріктіру үшін қолданылады.

: өрнектерді пішімдеуге мүмкіндік беретін қашу командасы. Мысалы: дыбыс ескертуі үшін а, жаңа жол үшін n, артқы орын үшін b және т.б.

Хуан Карлос Ортиске рахмет!

Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

10 пікір, өз пікіріңізді қалдырыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.

  1.   Орташа қиын дижо

    Керемет! Қалай болғанда да, 2 пікір: Ubuntu тегі тым көп, өйткені ол жалпылама нәрсені жалпылайды. Егер бұл оқулықтар алға қарай жүре берсе, онда олар бір-бірімен байланыстырылса жақсы болар еді ....
    Одан басқа, бұл қадам қызықты!

  2.   Linux қолданайық дижо

    Жақсы үлес! Керемет!

  3.   Джованни Эскобар Соса дижо

    Бұл мәселе туралы көбірек білгісі келетіндерге арналған сілтемелер ғана жоқ. Кейбір жақсы нәрселерді біздің елдерде табу оңай емес
    - Linux командалары, редакторлар және Shell бағдарламалау жөніндегі практикалық нұсқаулық, Марк Собелл (8-тарау)
    - Pro Bash Programming, Крис Ф.А. Джонсон (бұл басқа сілтемелері бар немесе одан да көп білімі барларға арналған).

    Жақсы мақала.

  4.   Linux қолданайық дижо

    Қайырлы күн! Рақмет сізге!

  5.   Патрицио Дорантес Джамарн дижо

    : @ «Жүйеге кіру» функциясы алдыңғы пікірімді жойды, сондықтан мен оны әрі қарай қорытындылаймын:
    жұмыс орындары
    bash: jobs: -c: жарамсыз опция
    жұмыс: пайдалану: жұмыс [-lnprs] [jobspec…] немесе жұмыс -x пәрмені [args]

    -eq -gt -lt ондық нүктелік айнымалыларды қабылдамайды, форум мен форум арасында bc-тің жақсы одақтас екенін анықтадым:
    егер [`echo 9.999> 10 | bc` -қосымша 1]; содан кейін
    echo «9.999 10-нан үлкен, сіздің процессорыңыз әлі жұмыс істеп тұрғанына көз жеткізіңіз»
    тағы
    echo «9.999 10-нан көп емес, барлығы қалыпты жұмыс істейді
    fi

  6.   Бруклиннен емес дижо

    Бұл хабарлама сценарийдің барлық жалпы сипаттамаларын өте жақсы жинақтайды:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Бұл сайтта сіз көптеген ерекшеліктер туралы сұрақтар мен жауаптар таба аласыз:
    http://unix.stackexchange.com/questions/tagged/bash

    Міне, кейбір керемет сценарийлер, ал сіз оларды басқа адамдардың сценарийлерін оқып біле аласыз:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   Бруклиннен емес дижо

    Бастан басқасын айтқандарыңыз дұрыс. Мен көрген барлық жүйелерде bash in / bin / bash бар.

    Бірақ питон, перл, лағыл және т.с.с. үшін бұл жақсы. мен істеймін

  8.   Гиль дижо

    Кездейсоқ, біз колледжде бас сценарийін қолданамыз, сондықтан деректер 10, өте жақсы!

  9.   алекс ви дижо

    жүктеу үшін pdf нұсқасы жақсы болар еді !! 😀

  10.   Марко Антонио Де Фуэнтес дижо

    Өте жақсы сайт. Ақыры пайдалы нәрсе таптым. Рақмет сізге.