Бид үүнийг ерөнхийдөө захиргааны болон файлын менежментийн үйл ажиллагаанд ашигладаг бол консол de Linux үйл ажиллагаагаа энэ зорилгоос хамаагүй өргөжүүлж програмчлах боломжийг бидэнд олгодог скриптүүд Энэхүү гарын авлага нь Bash програмчлалын талаархи бүрэн лавлагаа биш харин үндсэн команд, бүтцийн танилцуулга болох бөгөөд ингэснээр манай GNU / Linux системийн хүчийг өргөжүүлэх боломжийг олгоно. |
"Скрипт" гэж юу вэ?
Үндсэндээ энэ нь систем тодорхой даалгаварт ашигладаг тодорхой програмчлалын хэл дээр бичигдсэн кодыг агуулсан файл гэж бид хэлдэг. Энэ нь гадны оролт эсвэл график интерфэйстэй байх шаардлагагүй, гэхдээ боловсруулсан өгөгдлийн гаралтыг үүсгэдэг (хэрэглэгч үүнийг хараагүй ч гэсэн).
Башийн ашигладаг хэлийг өөрийн орчуулагч тодорхойлдог бөгөөд Korn Shell (ksh) эсвэл C Shell (csh) зэрэг бусад бүрхүүлүүдийн синтаксийг нэгтгэдэг. Консол дээр ихэвчлэн ашиглагддаг олон тушаалуудыг скриптэд ашиглаж болно.
Скриптийн бүтэц
Эхлэхийн тулд бид текст засварлагчтай байх ёстой бөгөөд програмчлах хүсэлтэй байх ёстой. Бид .sh өргөтгөлөөр хадгалдаг файлуудыг консол гүйцэтгэх боломжтой (эсвэл тайлбарлаж болно), эхний мөр нь дараах байдалтай байвал:
#! / bin / bash
Энэ нь файлыг ажиллуулахын тулд консолыг ашиглахыг системд хэлнэ. Нэмж дурдахад # тэмдэгт нь танд сэтгэгдэл бичих боломжийг олгодог. Хамгийн энгийн жишээг бий болгохын тулд дараах зурган дээрээс нэг мөр нэмж оруулав.
Цуурай тушаал нь дэлгэц дээр мессежийг харуулдаг бөгөөд энэ тохиолдолд ердийн "Сайн байна уу ертөнц!" Хэрэв бид үүнийг хадгалж, консолоор гүйцэтгэвэл үр дүнг харах болно.
Үндсэн командууд
Дараах тушаалууд нь түгээмэл бөгөөд ямар ч төрлийн програмд маш хэрэгтэй байдаг. Илүү олон зүйл байгааг бид тодруулсан боловч одоогоор дараахь зүйлийг авч үзэх болно.
Алиас: кодыг багасгах боломжийг олгодог үгийн мөрийг богино үгээр солихыг зөвшөөрдөг.
# per Download нэртэй хавтасны нэрийг # татаж авах хавтасны alias хаягийн хамт = '/ home / user / Downloads' ашиглан үүсгэх хэрэгтэй. Бид үүнийг ашиглахыг хүсэх бүрт # гэсэн шинэ үгийг дуудах хэрэгтэй. unalias unalias per ашиглах
завсарлага: давталтыг for, while, хүртэл шууд сонгох боломжийг олгодог (гогцоог дараа нарийвчлан судлах болно)
# 1 5 1 2 3 дахь тоолуурын "давталтын эргэлт" тус бүрт 4-ээс 5 хүртэлх тоог өгөх циклийг үүсгээрэй # Бид $ тэмдэгтээр дүн шинжилгээ хийдэг # тоолуурын хувьсагчийн одоогийн утгыг хэвлэ. echo "$ counter" # Хэрэв тоолуурын утга 3-тэй тэнцүү бол [$ counter –eq 3] байвал # break нь break fi-ийн давталтаас гарна
үргэлжлүүлэх - Одоогийн давталтыг үл тоомсорлож, дараагийнх руу шилжихээс бусад тохиолдолд завсарлагатай төстэй.
# 1 5 1 2 3 дахь тоолуурын "давталтын эргэлт" бүрт 4-ээс 5 хүртэлх тоог хуваарилах давталтыг үүсгээрэй. # Хэрэв тоолуурын утга 3-тай тэнцүү бол [$ counter –eq 3] байвал # Үргэлжлүүлэх нь одоогийн мөчлөгийн үлдсэн хэсгийг дараагийн шатанд үсрэх замаар дүн шинжилгээ хийхээс сэргийлдэг, өөрөөр хэлбэл # утга 3 хэвлэгдэхгүй. үргэлжлүүлэх fi echo "$ counter" хийгдсэн
тунхаглах: хувьсагчдыг зарлаж, тэдгээрийг утгын хуваарилалт, хэв маягийн адил (тэдгээр нь ижил аргаар ажилладаг). Бид үүнийг зарим сонголттой нэгтгэж болно: -i бүхэл тоог зарлах; -р утгыг өөрчлөх боломжгүй зөвхөн уншигдах хувьсагчдын хувьд; –Массив эсвэл “массив” -ын хувьд; -f чиг үүргийн хувьд; -х скриптийн орчноос гадуур "экспортлох" боломжтой хувьсагчдын хувьд.
тунхаглах –i num = 12 тунхаглах –x pi = 3.14
тусламж: тодорхой командын тусламжийг харуулдаг.
ажлын байрууд: ажиллаж буй процессуудыг харуулна.
# C –ээр бид тушаалын нэрийг харуулна, –p # бүхий процесс бүрийн pid (process id). ажлын байр -cp
let: арифметик илэрхийлэлийг үнэлэх
a = 11 let a = a + 5 # Эцэст нь бид 16 цуурай болох a-ийн утгыг хэвлэе "11 + 5 = $ a"
локал: алдаанаас зайлсхийхийн тулд скриптийн функцэд ашиглах нь зүйтэй. Та тунхаглах тушаалтай ижил функцийг ашиглаж болно.
local v1 = "Энэ бол локал хувьсагч"
гарах: Shell-ээс бүрэн гарах боломжийг олгодог; exit команд нь нэг удаад нэг цонхыг зогсоох боломжийг олгодог хэд хэдэн бүрхүүлтэй цонхтой ажилладаг тохиолдолд хэрэг болдог.
printf: өгөгдлийг хэвлэх, форматлах боломжийг олгодог. Энэ нь олон сонголттой тул цөөн хэдэн зүйлийг дурдах болно.
#% f нь хөвөгч тоо хэлбэрээр хэвлэгддэг, n # шинэ мөрийн printf "% fn" 5 5.000000 # & d нь аравтын бутархай тоог аргумент байдлаар дамжуулахыг зөвшөөрдөг printf "% d доллараар үнэлэгдсэн% d захиалга байна. n" 20 500 20 захиалга 500 долларын үнэтэй.
унших: стандарт оролтын мөрийг унших (жишээ нь гараар өгөгдлийг ачаалахад ашигладаг модуль). Бид дараахь сонголтуудыг дамжуулж болно: - унших хязгаарлалт өгөх; - үг бүрийг aname массив дахь байрлалд хуваарилахаар; -d мөрний төгсгөлд бичих зааглагчийг ашиглах; бусдын дунд.
echo "Нэрээ оруулаад ENTER дарна уу" # хувьсагчийн нэрийг унших нэрийг уншина уу echo "Таны нэр бол $ name"
төрөл: тушаал ба түүний үйлдлийг дүрсэлсэн. Тушаал бүрийн өгөгдлийн тодорхойлолтыг олж мэдэх нь ашигтай байж болох юм.
type -a '[' #type нь бидэнд [Shell builtin команд юм [Shell builtin # # гэж бичигдсэн нэртэй гүйцэтгэгддэг # агуулсан санг олох боломжийг олгодог. [is / usr / bin / [
ulimit: захиргааны өөрчлөлтийг зөвшөөрдөг эсвэл янз бүрийн төрлийн хэрэглэгчдэд чиглэсэн програмуудад тохиромжтой системийн тодорхой эх үүсвэрүүдийн процесст нэвтрэх, ашиглах боломжийг хязгаарладаг. Хязгаарыг тохируулахдаа бид хязгаарын килобайт илэрхийлсэн тоог бичнэ.
# Бид одоогийн хязгаарыг харж байна ulimit –a # -f нь хэрэглэгчдэд 512000 Kb (500 #Mb) ulimit –f 512000 # -v-ээс их хэмжээтэй файл үүсгэх боломжгүй байх боломжийг хязгаарлаж, процессын виртуал санах ойг хязгаарлаж байна. ulimit –v 512000
хүлээх: тодорхой үйл явц эсвэл ажлыг үргэлжлүүлэн хийхийг хүлээх.
# Скрипт нь # 2585 дугаартай пидийн процесс явагдахыг хүлээж байна
хүлээх 2585
Скриптэд нэмж оруулах бусад ашигтай тушаалуудыг бэлгэдлээр дүрсэлсэн болно.
!!: сүүлчийн командыг дахин ажиллуулна уу
! wer: "wer" илэрхийлэлээр эхэлсэн сүүлчийн командыг ажиллуулна.
'==', '! =', '>', '<', '> =' ба '<=': харилцааны операторууд.
|: OR оператор нь ердийн хоёр илэрхийлэлд нэгдэхэд ашиглагддаг.
: илэрхийлэлийг форматлах боломжийг олгодог escape тушаал. Жишээлбэл: дуут дохиоллын хувьд a, шинэ мөрөнд n, backspace гэх мэт.
10 сэтгэгдэл, үлдээгээрэй
Агуу их! Ямар ч байсан 2 сэтгэгдэл: Ubuntu хаяг нь ерөнхий зүйлийг ерөнхийд нь агуулдаг тул хагас илүү байна. Хэрэв эдгээр хичээлүүд үргэлжлүүлэн урагшлах юм бол бие биетэйгээ холбоотой байвал сайн байна ....
Үүнээс гадна энэ алхам сонирхолтой байна!
Сайн хувь нэмэр орууллаа! Агуу их!
Зөвхөн энэ асуудалд илүү ихийг хамрагдахыг хүсч буй хүмүүст зориулсан лавлагаа байхгүй байна. Зарим сайныг манай оронд олоход тийм ч хялбар биш байдаг
- Линуксийн команд, редактор, Shell програмчлалын талаархи практик гарын авлага, Марк Собелл (Бүлэг 8)
- Pro Bash програмчлал, Крис Ф.А.Жонсон (хэдийгээр энэ нь бусад лавлагаа эсвэл арай илүү мэдлэгтэй хүмүүст зориулагдсан).
Буэн артикуло.
Сайн огноо! Баярлалаа!
: @ "Нэвтрэх" функц нь миний өмнөх сэтгэгдлийг устгасан тул би үүнийг тоймлон хүргэе:
ажлын байр -cp
bash: ажлын байр: -c: хүчингүй сонголт
ажлын байр: хэрэглээ: ажлын байр [-lnprs] [jobspec…] эсвэл ажлын байр -x тушаал [args]
-eq -gt -lt нь аравтын бутархай хувьсагчдыг хүлээж авахгүй бөгөөд форум ба форумын хооронд bc бол сайн холбоотон болохыг олж мэдсэн.
хэрэв [`echo 9.999> 10 | bc` -eq 1]; дараа нь
echo "9.999 нь 10-аас их байна, таны процессор ажиллаж байгаа эсэхийг шалгаарай."
бас
echo «9.999 нь 10-аас ихгүй, бүх зүйл хэвийн ажилладаг
fi
Энэ бичлэг нь скрипт бичих бүх ерөнхий зүйлийг маш сайн нэгтгэн харуулсан болно.
http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html
Энэ сайтаас та bash өвөрмөц байдлын талаар олон асуулт, хариултыг олох болно.
http://unix.stackexchange.com/questions/tagged/bash
Энд үнэхээр гайхалтай скриптүүд байна, хөөе, та бусад хүмүүсийн скриптүүдийг уншаад сурч болно:
http://snipplr.com/search.php?q=bash&btnsearch=go
Башаас бусад нь таны хэлж байгаа зүйлд зөв байна. Миний үзсэн бүх системд bash in / bin / bash байдаг.
Гэхдээ питон, перл, бадмаараг гэх мэтийг ашиглах нь зүгээр юм. би хийнэ
Санамсаргүй байдлаар коллежид бид bash скриптийг ашиглаж байгаа тул өгөгдөл нь 10 байна, маш сайн байна!
татаж авах pdf хувилбар нь сайн байх болно !! 😀
Маш сайн сайт. Эцэст нь нэг хэрэгтэй зүйл оллоо. Баярлалаа.