"BASH" хэрхэн бичих вэ?

Бөхийн "скрипт" дээр давтахдаа хэрхэн ашиглах талаар

BASH (Bourne Again Shell) нь ихэнх Линуксийн болон UNIX-д суурилсан үйлдлийн системүүдийн ашигладаг скрипт хэл юм.

Та BASH командыг терминалын цонхны нөгөө талд ажиллуулж болно эсвэл эсвэл бүрхүүлийн скрипт үүсгэхийн тулд тушаалуудыг текст файлд нэмэх боломжтой.

Shell бүрхүүлийн скрипт бичих талаархи гайхалтай зүйл бол тэдгээрийг дахин дахин ажиллуулж чаддаг явдал юм. Жишээлбэл, та хэрэглэгчийг системд нэмэх, зөвшөөрөл авах, эхлэлийг нь зохицуулах хэрэгтэй гэж төсөөлөөд үз дээ. Та тушаалуудыг нэг цаасан дээр бичиж, шинэ хэрэглэгч нэмэхийн тулд тэдгээрийг ажиллуулж эсвэл нэг скрипт бичиж, зөвхөн скрипт руу параметрүүдийг дамжуулж болно.

BASH зэрэг скрипт хэлүүд бусад хэлтэй адил програмчлалын бүтэцтэй байдаг. Жишээлбэл, та импортоос параметрүүдийг ашиглаж гарнаас оруулж өгч хувьсагч хэлбэрээр хадгалах боломжтой. Та дараа нь оролтын параметрийн утгыг үндэслэн тодорхой үйлдлийг гүйцэтгэх боломжтой .

Ямар ч програмчлал болон скрипт хэллэгийн гол хэсэг нь ижил кодыг дахин дахин ажиллуулах чадвар юм.

Кодыг давтах хэд хэдэн аргууд байдаг (бас давталт гэгддэг). Энэ гарын авлагад та "for" гогцоо хэрхэн бичихийг үзүүлэх болно.

Давталтын хувьд давталтын кодын зарим хэсгийг давтаж давтана. Тэд хэд хэдэн тушаалыг тодорхой нөхцөлд биелсэн хэвээр үргэлжлүүлэн ажиллуулж болох бөгөөд дараа нь тэдгээр нь зогсох болно.

Энэ гарын авлагад та BASH скрипт дотор давталт хийх аргыг харуулах болно.

Эхлэхээс өмнө

Дээрх жишээний хувьд эхлээд терминалын цонхыг нээж, дараах алхмуудыг дагана уу:

  1. Mkdir скриптүүдийг оруул ( энд mkdir-ийн тухай дэлгэрэнгүй үзэх )
  2. Cd скриптүүдийг оруулаарай (энэ нь скриптүүдийн санг өөрчилдөг )
  3. Nano examplen.sh-ыг оруулна уу (энд n нь таны ажиллаж байгаа жишээ юм)
  4. Скриптийг оруулна уу
  5. Хадгалж CTRL + O дарж, CTRL + X гарах болно
  6. Run bash examplen.sh (дахин, n нь таны ажиллаж байгаа жишээтэй)

Жагсаалтаар дамжуулан хэрхэн loop хийх вэ

#! / bin / bash
1 2 3 4 5 дахь тоо
хийх
echo $ тоо
хийсэн
гарах 0

"Бөглөсөн" галт тэрэгний BASH арга нь бусад програмчлалын болон скрипт хэлийг "for" гогцоонуудтай холбох аргаар арай өөр байна. Скриптийг хасаад үзье ...

BASH "for" гогцоонд бүгдийг хийж , хийж гүйцэтгэсэн өгөгдлүүд жагсаалт дахь бүх зүйл тус бүрт нэг удаа хийгддэг .

Дээрх жишээнд, жагсаалтанд үг орсоны дараа ирдэг бүх зүйл (өөрөөр хэлбэл 1 2 3 4 5).

Давталт давтагдах бүрт жагсаалтын дараагийн утга "for" гэсэн үгний дараа тодорхойлогдсон хувьсагчид ордог. Дээрх давталтын хувьд хувьсагчийг дугаар гэж нэрлэдэг.

Echo statement нь дэлгэц дээр мэдээллийг харуулахад хэрэглэгдэнэ.

Тиймээс энэ жишээ 1-ээс 5 дугаарыг аваад тэдгээрийг дэлгэцэнд нэг нэгээр нь гаргана.

Эхлэх болон төгсгөлийн цэгийн хоорондох зайг хэрхэн нээх вэ?

Дээрх жишээнд алдаа гарвал илүү том жагсаалтыг боловсруулахыг хүсч байвал 1-ээс 500 хүртэл хэлбэлзэлтэй байх болно.

Энэ нь биднийг хоёр дахь жишээн дээр авчирч эхлэх ба төгсгөлийн цэгийг хэрхэн тодорхойлохыг харуулж байна:

#! / bin / bash
{1..10} дахь тоо
хийх
echo "$ тоо"
хийсэн
гарах 0

Дүрэм нь үндсэндээ адилхан. "In " гэдэг үгийн дараа утгууд нь давталтын жагсаалтыг гаргах бөгөөд жагсаалт дахь утга бүрийг хувьсагч (өөрөөр хэлбэл тоо) дээр байрлуулж, давталтын давталт бүрийг давтаж, хийсэн болон хийгдсэн хоорондын өгөгдлийг гүйцэтгэдэг.

Гол ялгаа нь жагсаалтыг бий болгох арга юм. {} Үндсэн буржгар хаалтууд нь гол төлөвийг илэрхийлдэг ба энэ муж нь 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}.

Эхний дугаар нь 0 ба төгсгөлийн дугаар нь 100 байна. Гурав дахь дугаар (10) нь алгасах жагсаалтын тоо юм.

Дээрх жишээ нь дараах гаралтыг харуулна:

Loop илүү хайж байна

Бусад програмчлалын хэлтэй харьцуулахад давталт хийх BASH арга нь арай хачин байдаг.

Гэсэн хэдий ч C хэлний програмчлалын хэлтэй ижил төстэй загварыг дараах байдлаар бичиж болно:

#! / bin / bash
for ((тоо = 1; тоо <100; дугаар ++))
{
if (($ number% 5 == 0))
Дараа нь
echo "$ тоо 5-оор хуваагддаг"
fi
}
гарах 0

Энэ давталт нь хувьсагчийн дугаарыг 1 (тоо = 1 ) тохируулснаар эхэлдэг. Дугуйн давталт нь давтамжийг хадгалах бөгөөд тооны утга 100-аас бага ( тоо <100 ). Дугаарын утга нь 1-ийг давталтын дараа ( ++ ) давталттайгаар нэмж болно.

Гүүрний хаалт хоорондох бүх зүйл давталтын давталт бүрээр хийгддэг.

Таслагчийн хоорондох бит нь тоон утгыг шалгаж, 5-аар хувааж, үлдсэн хэсгийг 0-тэй харьцуулна. Хэрэв үлдсэн хэсэг нь 0 байвал тоог 5-р хувааж, дэлгэц дээр харуулна.

Жишээлбэл:

Хэрэв та давталтын алхамын хэмжээг өөрчлөхийг хүсвэл тоон = тоо + 2 , дугаар = тоо + 5 , эсвэл дугаар = тоо + 10 тоог өөрчлөх ++ гэсэн дугаарыг өөрчилж болно.

Үүнийг цаашдаа + = 2 буюу тоо + = 5 хүртэл багасгаж болно.

Практик жишээ

Дугуйнууд давталтын тоон жагсаалтаас давж болно. Та бусад тушаалуудын гаралтыг жагсаалт болгон ашиглах боломжтой.

Дараах жишээ нь аудио файлуудыг MP3- с WAV уруу хэрхэн хөрвүүлэхийг харуулж байна:

#! / bin / bash

Энэ жишээнд байгаа жагсаалт нь одоогийн фолдер дахь .MP3 өргөтгөлтэй файл бүр, хувьсагч нь файл юм.

Mpg тушаал нь MP3 файлыг WAV болгон хувиргадаг. Гэсэн хэдий ч, та үүнийг багцын менежерийг ашиглан суулгах хэрэгтэй байж магадгүй.