Bash-г хэрхэн бичих талаар

Тушаал, синтакс ба жишээнүүд

Та тэдгээрийг скрипт файлд бичиж, дараа нь үүнийг ажиллуулж тушаалын дарааллыг гүйцэтгэж болно.

Скрипт файл нь ердийн текст файл бөгөөд ихэвчлэн .SH файлын өргөтгөлтэй байдаг бөгөөд энэ нь тушаалын мөрөөс ( бүрхүүл ) тушаалын дарааллыг агуулдаг.

Loop Жишээ нь

Доорх нь давталтын жишээ юм. Үүнийг гүйцэтгэх үед энэ скрипт файл дэлгэц дээр 1-ээс 9 хүртэл тоог хэвлэнэ. Удаах мэдэгдэл нь давталтаас илүүтэйгээр зогсоох нөхцөлийг заах уян хатан байдлыг өгдөг.

#! / bin / bash count = 1 байхад [$ count -le 9] "$ count" унтах 1 ((count ++) echo хийх

Жишээлбэл, та өмнөх скриптийг хязгааргүй давталтаар цэгэн түүгээрээ "((count ++)" гэж бичиж өгч болно: "

#! / bin / bash count = 1 байхад [$ count -le 9] "$ count" унтах 1 echo хийж байна

"Унтах 1" мэдэгдэл нь давталт бүр дээр 1 секундын хугацаанд гүйцэтгэх ажиллагааг зогсоох болно. Процессийг цуцлахын тулд Ctrl + C гарын товчлуурыг ашиглана уу.

Та бас хязгааргүй хүрдийг үүсгэж болно.

#! / bin / bash count = 1 байхад: "$ count" унтах 1 ((count ++) echo хийх

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

count = 1 done = 0 байхад [[$ count -le 9] && [$ done == 0]] хэрэв "$ count == 5" бол "$ count" унтах 1 ((count ++) echo; Дараа нь $ done = 1 fi done

Энэ скриптэд "дууссан" хувьсагч нь 0-ээр эхэлж 0-ээр тоологдож дараа нь тоологдох тоогоор 1 гэж тохируулна. Давтамжийн нөхцөл нь "тоолох" тоо 9-ээс бага, "дууссан" тэг рүү. Тиймээс тоолуур 5-тэй тэнцэх үед гарах гарцууд.

"&&" нь логик "ба" ба "||" логик "буюу" гэсэн утгатай.

"Болон" ба "эсвэл" нөхцлүүдийн альтернатив нэр томъёо нь "-a" ба "-o" гэсэн ганц дөрвөлжин хаалттай байна. Дээрх нөхцөл:

[[$ count -le 9] && [$ done == 0]]

... дараах зүйлийг дахин бичиж болно:

[$ count -le 9] -a [$ done == 0]

Текст файлыг унших нь голдуу давталтаар хийгддэг. Дараах жишээн дээр bash скриптийн агуулгын мөрийг "inventory.txt:" нэртэй файл мөрийг уншдаг.

FILE = inventory.txt exec 6

Эхний мөр нь оролтын файлын нэрийг "FILE" хувьсагч руу өгдөг. Хоёр дахь мөрөнд "стандарт оролт" файлын тодорхойлогч "6" -ийг хэмнэсэн (энэ нь 3-аас 9 хоорондох утга байж болно). Энэ нь скриптийн төгсгөлд "стандарт оролт" -ийг файлын тодорхойлогч файлд "0" болгож дахин тохируулж болно ("exec exec" гэсэн үгийг 3-р мөрөнд оролтын файлын тодорхойлогч "0" Стандарт оролтын хувьд "уншигдах" мэдэгдэл нь давталт бүрийн файлаас нэг мөрийг уншиж, "мөрийн" хувьсагч руу өгдөг.

Хэсэг хугацааны давталтаас гарахын тулд break гэсэн мэдэгдлийг дараах маягаар ашиглаж болно:

count = 1 done = 0 байхад [$ count -le 9] "$ count" унтах 1 ((count ++) гэж харуулах бол [$ count == 5] бол файлын аргыг дуусгасан echo Finished

Цаг завсарлага нь төгсгөл хүртэл төгсгөлд програмын гүйцэтгэлийг алгасаж, үүнээс хойшхи мэдэгдлийг гүйцэтгэнэ. Энэ тохиолдолд "цуурай дууссан" гэсэн үг.

Нөгөө талаас, үргэлжлүүлэн хэлэх зүйл нь үлдсэн хэсэг нь одоогийн давталтын давталтын илэрхийлэл болж, дараагийн давталт руу шууд үсрэх болно:

count = 1 done = 0 байхад [$ count -le 9] унтах 1 ((count ++) хэрэв [$ count == 5] бол $ echo "$ count"

Энэ тохиолдолд "үргэлжлэх" гэсэн мэдэгдэл нь хувьсагч "тоолох" утга 5 хүрэх үед гүйцэтгэгдэнэ. Ингэснээр энэ давталтын (echo "$ count") давтагдахгүй гэсэн үг юм ("count" 5 утга).