Баш програмчлах - 2-р хэсэг

Хоёрдугаар хэсэг үүнээс мини заавар програмчлах Bash, хаана ашиглаж сурах вэ? мөчлөг бидний үйл ажиллагааг сайжруулахад туслах бусад хэрэгслүүд скриптүүд.

Хэрэв нөхцөлт бол

If-ийн функц нь шүүлтүүрийг хэрэглэж, ашигласан шүүлтүүрийн төрөл тус бүрт үйл ажиллагаа эсвэл даалгавар гүйцэтгэхэд оршино. Түүний бүтэц нь дараах байдалтай байна.

Хэрэв [нөхцөл]; дараа нь elif командууд [нөхцөл]; дараа нь өөр тушаалууд; fi тушаалууд

Жишээ нь For хэсгийн давталтын хэсэгт харуулав.

Циклүүд

1. While: энэ нь нөхцөл үнэн бол л хийх ба хийх хооронд заасан бүх командыг гүйцэтгэх болно. Хэрэв бид харьцуулах операторуудыг дамжуулахыг хүсч байвал илэрхийлэл нь хаалтанд байх ёстой.

CONDITION / COMMAND командыг хийх үед

Жишээ: тооны үржүүлэх хүснэгт

#! / bin / bash X = 1 цуурай "Дугаар оруулаад ENTER дарна уу" M уншаад # Х давталтыг X нь 10-аас бага буюу тэнцүү байхад хянадаг бол [$ X –le 10] # R-д бид үржвэрийг хадгалдаг. X by MR = $ [X * M] # Энэ үржүүлгийг "$ M * $ X = $ R" гэсэн цуурай дэлгэц дээр хэвлэв # Энэ тохиолдолд X-ийн утгыг 1 нэгжээр нэмэгдүүлье X = $ X + 1

2. Үүнд: мөчлөг бүрт тодорхой үйлдлүүдийг гүйцэтгэхэд ашиглагдах элементүүдийн жагсаалтыг хувьсагч дотор хадгална.

Элементүүд дэх VARIABLE-ийн хувьд тушаалуудыг хийдэг

Жишээ: Хуучин файлыг орлуулж, нэг хавтаснаас нөгөө хавтас руу файл хуулах програм.

# / bin / bash # Бид эх сурвалж, очих лавлах санг байгуулдаг ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Бид эх сурвалж байрлал дээрээ байрладаг cd $ ORIGIN # Бүх файлуудаас бид зөвхөн тэр файлыг л хүсдэг. * хийх ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f файлыг FILE-д # дуудлага хийх нь бидэнд ердийн файлуудыг шүүж өгдөг. - Хэрэв [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION] бол # фолдерыг очих фолдерт байгаагаас # илүү "шинэ" байдлаар шүүнэ. дараа нь "$ FILE-ийг хуулж байна ..." гэж цуурайтах # бид cp cp файлыг хуулж $ FILE $ ARCH-DESTINATION fi дууссан # Бид cd эх фолдероос гарахын тулд cd.

Өөр нэг жишээ: Хэрэглэгч компьютерээс үүсгэсэн санамсаргүй тоог таах ёстой скрипт.

# / bin / bash # Санамсаргүй тоог 1-ээс 10 хүртэл үүсгэдэг бөгөөд үүнийг RANDOM RANDOM = $ [$ RANDOM% 10 + 1] -д хадгалдаг бөгөөд [1] do echo –n "Дугаар оруулна уу:" дугаарыг унших # Хэрэглэгчийн сонгосон дугаар нь RANDOM-той # тэнцүү байгаа эсэхийг харьцуулах; [“$ NUM –eq“ $ RANDOM ”] бол тэдгээрийн нэрийг биш харин хувьсагчдын # утгыг үнэлэхэд $ ашиглахыг санаарай; дараа нь "Та үүнийг зөв ойлгосон!" #break нь завсарлагааны үеэр давталтыг дуусгах боломжийг олгодог # Хэрэв тоо нь RANDOM elif-ээс бага бол [“$ NUM –gt“ $ RANDOM ”]; дараа нь "Энэ нь бага" "" Хэрэв үгүй ​​бол энэ нь RANDOM-оос их байна "гэж цуурайтна" IT IS great "fi done

3. Хүртэл: бүтцийн хувьд While-тэй нэлээд төстэй боловч нөхцөл байдлын үнэлгээ сөрөг байх үед код үргэлж хэрэгждэг, өөрөөр хэлбэл програм нь "нөхцөл гарах хүртэл" үргэлжлүүлэн ажиллана.

CONDITION / COMMAND командыг хийх хүртэл

Жишээ: 10-20 тоог буурах дарааллаар хэвлэ

#! / bin / bash CONT = 20 # Тоолуур нь 10-аас бага (-lt, "доод #") байвал кодыг [$ CONT -lt 10] хүртэл гүйцэтгэнэ; do echo "COUNTER $ CONT" #A CONT нь нэгжээр хасагдана CONT- = 1 дууссан

4. Сонгох: ерөнхийдөө цэсийг хурдан гаргахад ашигладаг тул энэ сүүлийн мөчлөг нь онцгой тохиолдол юм. Энэ нь For гогцоотой төстэй ажилладаг.

хийсэн командын LIST дээр VARIABLE-г сонгоно уу

Жишээ: хэрэглэгчид скриптийг үргэлжлүүлэх эсвэл дуусгах чадварыг өгөх.

#! / bin / bash #item нь # хэрэглэгчийн сонгосон зүйлд хариу үйлдэл үзүүлэх хувьсагч бөгөөд Continue ба Finish нь түүнд боломжтой # сонголтууд боловч бусад сонголтуудыг нэмж оруулах боломжтой боловч Continue Finish дээр # илүү олон зүйлийг сонгоно уу. Хэрэв хэрэглэгчийн сонгосон бол хөтөлбөрийг дуусгасны дараа завсарлагаанаар бид мөчлөгөөс гарна. хэрэв [$ item = "Finish"]; дараа нь завсарлага хий
Хуан Карлос Ортизд баярлалаа!

Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

13 сэтгэгдэл, үлдээгээрэй

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно.

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.

  1.   Дунд зэргийн хэцүү гэж хэлэв

    Би иймэрхүү зүйлийг бодож байна: tar -cf - Directory | (CD / бусад / лавлах; tar -xvf -)

    Дараа нь энэ нь / өөр / лавлах / лавлах шиг харагдах болно
    Ийм байдлаар би лавлахыг шахаж, та үүнийг өөр газар задлах болно.

  2.   Мигель Анхел гэж хэлэв

    Сайн уу, сайн tuto, би энэ сэдвээр сурч байгаа бөгөөд бүх зүйл зүгээр байна, зөвхөн надад тус болох програмыг хийж чадаагүй байна.

    Би циклийг хийх хэрэгтэй бөгөөд үүнд эх файлын жагсаалтыг параметр болгон хүлээн авах боломжтой бөгөөд энэ жагсаалт нь зөвхөн нэрсийг (өргөтгөлгүйгээр) авчирдаг тул цикл дараахь зүйлийг хийх бөгөөд сангаас хүлээн авсан нэрсийг хайж олох хэрэгтэй. бид хайх болно), файлыг хуулж, хуулж (өргөтгөлтэй аль хэдийн бүтэн нэр), үнэмлэхүй замыг нэмж, өөр очих файлд үүсгээрэй.

    Одоогийн байдлаар надад дараахь зүйлс байна.

    мөрийг унших үед
    do
    echo -e "$ line"
    find / home / myuser / dof "$ line" -exec readlink -f {};
    дууссан <testlist.txt Одоогоор би файлыг бүх мөрийг нь уншсан боловч тэр файлыг хайж олоод мэдээллийг задалж чадахгүй байна, хэрэв надад тусалж чадвал баярлалаа. Баяр хүргэе

  3.   Памела галавиз гэж хэлэв

    Хандив нэмэр болсонд маш их баярлалаа 🙂

  4.   Марио Хавьер гэж хэлэв

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

  5.   Жуанк гэж хэлэв

    ARCH-DESTINATION нь илүүдэл байдлаас гадна очих файлын замыг хадгалахыг хүссэн хувьсагч юм. Дараа нь энэ хувьсагч дээр бид DESTINATION хувьсагчийг зааж өгье, дээр нь Documents хавтас руу орох замыг оруулаад файлын нэрийг агуулсан "хувьсагч" FILE-ийг нэмнэ. Хэрэв тэр файл, жишээ нь list.doc байсан бол ARCH-DESTINATION хувьсагч нь /home/Usuario/Documentos/listado.doc-тэй тэнцүү байх болно.

  6.   Линукс ашиглая гэж хэлэв

    Энэ бол өмнөх нийтлэл юм. Та үүнийг нэвтрэх боломжтой http://usemoslinux.blogspot.com

    Тэврэх! Паул.

  7.   Фрэнк гэж хэлэв

    Өглөөний мэнд, ханьдаа баярлалаа, блогтоо сайн байна, гэхдээ би програмчлалын эхний хэсгийг Баш дээр авч чадахгүй байна. Талархал, мэндчилгээ

  8.   Сайто Мордрауг гэж хэлэв

    Хоёр ер бусын хэсэг, чин сэтгэлээсээ баяр хүргэе.

    Зүгээр л гайхалтай.

  9.   Фредди гэж хэлэв

    сайн

  10.   Хюго гэж хэлэв

    Сайн уу, би CASE-тэй програм хийж байна, юу хийхийг хүсч байна, яаж хийхээ мэдэхгүй байна, жишээлбэл:

    echo Сонголтыг сонгоно уу:
    Echo
    цуурай 1. сонголт 1
    цуурай 2. сонголт 2
    цуурай 3. сонголт 3
    цуурай 4. сонголт 4
    цуурай 5. Гарах
    унших var
    тохиолдол "$ var" in
    1)
    echo "Та сонголтыг сонгосон 1"
    ;;
    2)
    echo "Та сонголтыг 2 сонгосон"
    ;;
    3)
    "... .." гэж шидэв
    ;;
    4)
    "..." гэж шидэв.
    ;;
    5)
    "..." гэж шидэв

    ;;
    *)
    цуурай "буруу сонголт"
    ;;
    тэр C

    за юу хийхээ мэдэхгүй байна. Гарах 4-р сонголтыг сонгоод үнэхээр гарахыг хүсэж байгаа эсэхийг асууж, надад Y & N гэсэн 2 сонголтыг өгнө үү.

    нөгөө нь 1..5 гэсэн тоонуудаас өөр зүйлийг сонгохдоо зохиолоос надад саналаа өгөхгүй байх явдал юм.

    Та надад тусална уу, баярлалаа.

  11.   DAPAMA21 гэж хэлэв

    Сайн уу, би 1 сарын өмнөөс скрипт бичиж эхэлсэн бөгөөд таны бичсэн бичлэгүүдийн ачаар. Би 15-20 орчим хийсэн байх болно. Урьдчилан их баярлалаа. Харин одоо манай багш надад зогсонги байдалд орсон ажил өгсөн. Багш асуудаг тул:
    директорыг дамжуулж, тэр директорт байгаа бүх файлыг цагаан толгойн үсгээр гэрт нь хуулж аваад file1 file2 гэх мэт нэрлэх гэх мэт.
    Одоо би олох эсвэл олох мөчид байна, find-ийг ашиглахыг хүссэн боловч dev null-д оруулахдаа алдааны кодыг өгөхдөө зөвшөөрлүүд татгалзсан тул би буруу болж, байршлаа байршуулж байна.
    $ 1 | олох grep "/ $ {1} \ $"
    Гэхдээ мэдээжийн хэрэг тэд бүгд гарч ирдэг ...
    Хэрэв та уншсан бол маш их баярлалаа.
    Хэрэв та надад тусалж чадвал энэ нь маш сайн тус болно.

  12.   Луис гэж хэлэв

    Энэ тал дээр надад туслаач гэж хүсч байна.
    1.-Гар дээр бүхэл тоог оруулаад дэлгэц дээр хоёр, гурав дахин өсгө. 2.- Гараар оруулсан тоо 3-т хуваагдах эсэхийг шийдэх програмыг гарга.
    3.- Нийлбэрийг олох програм гарга: ???????? + ???????? + ???????? + ???????? + ⋯? ???????
    4.- 1 + 3 + 5 + 7 + 9 + · · + (2n + 1) нийлбэрийг олох програмыг гарга.
    5.-Линукс гэдэг үгийг дэлгэцэн дээр 10 удаа хэвлэдэг програм хий
    6.-Линукс гэсэн үгийг дэлгэц дээр хэрэглэгчийн хэдэн удаа харуулсан тоог хэвлэх програмыг гарга.
    7.-Нэг дүнг хэдэн цагаар оруулаад минут, секунд болгон хөрвүүл.
    8.-Гурвалжингийн талбайг тооцоолох
    9.-Гар дээр тоог оруулна уу, дараа нь 2 оруулбал дөрвөлжин, 3 шоо дөрвөлжин, 4-өөс дөрөв, гэх мэт 6 хүртэл байх ёстой.
    10-Оюутны төлөх ёстой тэтгэвэр, мэргэжлийн кодыг оруулах, хугацаа хэтэрсэн өдрүүдийг тооцоолох.
    КОД
    МЭРГЭЖЛИЙН
    AMOUNT
    Өдөр бүр үргэлжлэх хугацаа
    1
    Тооцоолох
    160
    1
    2
    СУВИЛАЛ
    150
    1.5
    3
    Нарийн бичгийн дарга
    140
    2
    4
    АЯЛАЛ ЖУУЛЧЛАЛЫН
    180
    2.5
    5
    Нягтлан бодох бүртгэл
    160
    1
    Та сурч буй мэргэжил, тэтгэврийн зардал, анхдагч төлбөр, төлөх ёстой нийт дүнг харуулах ёстой.

  13.   charly гэж хэлэв

    Сайн уу, хэн нэгэн надад тусалж чадах уу?
    Надад «Гурван үгийг гараар хүсэлт гаргаж, цагаан толгойн дарааллаар А-аас z хүртэл харуулах» хэрэгтэй.
    LINUX porfaborrrr-д Bash эсвэл sh хэлээр

bool (үнэн)