Pengaturcaraan dalam bash - bahagian 2

Kedua daripada ini tutorial mini pengaturcaraan di Bash, di mana kita belajar menggunakan kitaran dan alat lain yang akan membantu kami meningkatkan fungsi alat kami skrip.

Sekiranya bersyarat

Fungsi If adalah untuk menerapkan filter dan melakukan operasi atau tugas untuk setiap jenis filter yang digunakan. Strukturnya adalah seperti berikut:

Sekiranya [keadaan]; kemudian perintah elif [keadaan]; maka perintah lain; perintah fi

Contoh ditunjukkan di sebelah gelung For di bahagiannya.

Kitaran

1. Sementara: ia akan melaksanakan semua perintah yang ditentukan antara melakukan dan dilakukan selagi syaratnya benar. Sekiranya kita ingin memberikan operator perbandingan kepadanya, ungkapan mesti dalam tanda kurung.

semasa KEADAAN / PERINTAH melakukan perintah yang dilakukan

Contoh: jadual pendaraban nombor

#! / bin / bash X = 1 echo "Masukkan nombor dan tekan ENTER" baca M #Lingkaran mengawal bahawa X kurang daripada atau sama dengan 10 sementara [$ X –le 10] melakukan #In R kita menyimpan pendaraban X by MR = $ [X * M] # Pendaraban ini dicetak pada gema skrin "$ M * $ X = $ R" #Dengan membiarkan, kami meningkatkan nilai X sebanyak 1 unit membiarkan X = $ X + 1 selesai

2. Untuk: menyimpan senarai elemen dalam pemboleh ubah, yang akan digunakan untuk melakukan operasi tertentu dengan setiap kitaran.

untuk VARIABLE dalam ELEMENTS melakukan perintah yang dilakukan

Contoh: program yang menyalin fail dari satu folder ke folder lain, menggantikan fail lama.

# / bin / bash #Kami mewujudkan direktori sumber dan destinasi ASAL = / rumah / pengguna / Muat turun TUJUAN = / rumah / pengguna / Dokumen # Kami menempatkan diri dalam sumber cd $ ASAL #Dari semua fail, kami hanya mahukan yang adalah # panggil FILE untuk FILE di * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f menyaring kami fail biasa, kerana direktori # tidak ada yang baik bagi kami. –Nt menyaring # fail “lebih baru” daripada # yang terdapat di folder tujuan sekiranya [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; kemudian gema "Menyalin $ FILE ..." # kami menyalin fail dengan cp cp $ FILE $ ARCH-DESTINATION fi selesai #Kami cd untuk keluar dari folder sumber cd

Contoh lain: skrip di mana pengguna mesti meneka nombor rawak yang dihasilkan oleh komputer.

# / bin / bash # Nombor rawak dihasilkan dari 1 hingga 10, ia # disimpan dalam RANDOM RANDOM = $ [$ RANDOM% 10 + 1] sementara [1] bergema –n "Masukkan nombor:" baca NUM # Bandingkan jika nombor yang dipilih oleh pengguna adalah # sama dengan RANDOM; ingat untuk menggunakan $ untuk menilai # nilai pemboleh ubah dan bukan namanya jika [“$ NUM –eq“ $ RANDOM ”]; kemudian bergema "Anda betul!" #break membolehkan mengakhiri gelung semasa rehat #Jika bilangannya kurang dari RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; kemudian gema "Ia kurang" "Jika tidak, lebih besar daripada RANDOM yang lain bergema" ITU lebih besar "

3. Sehingga: strukturnya hampir sama dengan Sementara, kecuali bahawa kodnya selalu dijalankan sementara penilaian keadaannya negatif, iaitu, program ini terus dijalankan "sehingga kondisi itu terjadi"

sehingga KEADAAN / PERINTAH melakukan perintah yang dilakukan

Contoh: mencetak nombor 10-20 mengikut turutan menurun

#! / bin / bash CONT = 20 # Selagi kaunter kurang dari 10 (-lt, "lower #than") kod tersebut dilaksanakan sehingga [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT ditolak oleh unit biarkan CONT- = 1 selesai

4. Pilih: kitaran terakhir ini adalah kes khas, kerana biasanya digunakan untuk membuat menu dengan cepat. Ia berfungsi serupa dengan gelung For.

pilih VARIABLE dalam SENARAI perintah yang dilakukan

Contoh: memberi pengguna kemampuan untuk meneruskan atau mengakhiri skrip.

#! / bin / bash #item adalah pemboleh ubah yang bertindak balas terhadap apa yang #pengguna pilih, Lanjutkan dan Selesai adalah #pilihan yang ada padanya, walaupun pilihan lain dapat ditambahkan # lebih banyak item pilih di Lanjutkan Selesai lakukan #Jika pengguna memilih akhiri program, kemudian dengan rehat kita keluar dari kitaran. jika [$ item = "Selesai"]; maka break fi selesai
Terima kasih Juan Carlos Ortiz!

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Sukar Sederhana kata

    Saya rasa seperti ini: tar -cf - Direktori | (cd / other / direktori; tar -xvf -)

    Maka akan kelihatan seperti / another / direktori / Direktori
    Dengan cara itu saya memampatkan Direktori dan anda menyahkompresnya di tempat lain….

  2.   Malaikat Miguel kata

    Helo, tuto yang baik, saya belajar mengenai subjek dan semuanya baik-baik saja, cuma saya tidak dapat membuat program yang membantu saya, untuk melihat apakah anda boleh membantu saya.

    Saya perlu melakukan kitaran, di mana ia akan menerima sebagai parameter senarai fail sumber, senarai ini hanya membawa nama (tanpa peluasan), sehingga kitaran melakukan yang berikut, cari nama yang diterima dalam direktori (yang yang akan kita cari), ekstrak dan salin fail (nama penuh sudah ada pelanjutan) dan jalan mutlak dan buat di fail tujuan lain.

    Setakat ini saya mempunyai perkara berikut:

    sambil membaca baris
    do
    echo -e "$ baris"
    cari / rumah / myuser / dof "$ line" -exec readlink -f {};
    selesai <testlist.txt Sejauh ini saya membaca fail, setiap barisnya, tetapi saya tidak dapat membuatnya mencari fail itu dan mengekstrak maklumatnya, jika anda boleh membantu saya, terima kasih. Sorakan

  3.   Pamela galaviz kata

    Terima kasih banyak atas sumbangan 🙂

  4.   Mario Xavier kata

    hai ... Saya harap anda dapat membantu dalam praktik seterusnya ... Buka zip fail dalam tgz di direktori yang ditentukan, selain menentukan pengguna dan kumpulan untuk semua direktori dan fail yang ada, dan memberikan izin untuk fail dan direktori
    nota: fail siap dibaca dan ditulis
    kebenaran pelaksanaan direktori

  5.   johnk kata

    ARCH-DESTINATION adalah pemboleh ubah di mana kita mahu menyimpan jalan fail tujuan, maafkan kelebihan. Kemudian, untuk pemboleh ubah ini kami menunjukkan pemboleh ubah DESTINATION, yang di atas mengandungi jalan ke folder Dokumen dan kami menambahkan "variabel" FILE, yang mengandungi nama fail. Sekiranya fail itu, misalnya, list.doc, pemboleh ubah ARCH-DESTINATION akan sama dengan /home/Usuario/Documentos/listado.doc

  6.   Mari gunakan Linux kata

    Ini adalah artikel sebelumnya. Anda boleh mengaksesnya di http://usemoslinux.blogspot.com

    Peluk! Paul.

  7.   Frank kata

    Selamat pagi rakan sekalian terima kasih, blog anda sangat bagus, tetapi saya tidak dapat memperoleh bahagian pertama Pengaturcaraan di Bash, di mana saya mendapatkannya terima kasih, salam

  8.   Saito Mordraw kata

    Dua bahagian luar biasa, tahniah saya ikhlas.

    Cukup indah.

  9.   Fredy kata

    baik

  10.   Hugo kata

    Hai, saya membuat program dengan CASE, apa yang saya mahu dan saya tidak tahu caranya, misalnya:

    echo Memilih pilihan:
    echo
    gema 1. pilihan 1
    gema 2. pilihan 2
    gema 3. pilihan 3
    gema 4. pilihan 4
    gema 5. Keluar
    baca var
    kes "$ var" dalam
    1)
    gema "Anda memilih pilihan 1"
    ;;
    2)
    gema "Anda memilih pilihan 2"
    ;;
    3)
    membuang "… .."
    ;;
    4)
    membuang "…."
    ;;
    5)
    membuang "..."

    ;;
    *)
    gema "pilihan yang salah"
    ;;
    bahawa C

    ok apa yang saya tidak tahu bagaimana melakukannya ialah apabila saya memilih pilihan 4 iaitu meninggalkan, tanyakan apakah saya benar-benar mahu pergi, dan beri saya 2 pilihan Y & N

    dan yang lain ialah apabila anda memilih sesuatu yang lain daripada nombor 1..5 jangan memilih saya dari skrip….

    Bolehkah anda menolong saya terima kasih.

  11.   DAPAMA21 kata

    Hai, saya mula menulis skrip 1 bulan yang lalu dan terima kasih kepada catatan skrip anda. Saya akan melakukan lebih kurang 15-20. Terima kasih banyak-banyak. Tetapi sekarang guru kita telah memberi kita pekerjaan di mana saya menjadi stagnan. Oleh kerana guru bertanya:
    melewati direktori, salin ke rumah anda semua fail yang ada di direktori itu mengikut abjad dan namakan file1 file2 dll ... dll ...
    Sekarang saya sedang mencari atau mencari, saya ingin menggunakan cari tetapi ketika memberikannya kod ralat seperti saya memasukkannya melalui dev null, kebenaran ditolak maka saya tersilap dan meletakkan lokasi saya di sini:
    cari $ 1 | grep "/ $ {1} \ $"
    tetapi tentu saja dengan ini mereka semua keluar ...
    Terima kasih banyak sekiranya anda membacanya.
    Sekiranya anda dapat menolong saya, ia akan menjadi kebaikan.

  12.   Luis kata

    Saya ingin anda menolong saya dalam hal ini.
    1.-Masukkan nombor bulat pada papan kekunci dan paparkan dua kali dan tiga kali ganda nombor di skrin. 2.- Buat program untuk menentukan sama ada nombor yang dimasukkan oleh papan kekunci dibahagi dengan 3 atau tidak.
    3.- Buat program untuk mencari jumlah: ???????? + ???????? + ???????? + ???????? + ⋯? ???????
    4.- Buat program untuk mencari jumlah 1 + 3 + 5 + 7 + 9 · · · + (2n + 1).
    5.-Buat program yang mencetak perkataan Linux di skrin 10 kali
    6. -Membuat program yang mencetak perkataan Linux di skrin berapa kali ditunjukkan oleh pengguna.
    7.-Masukkan jumlah dalam beberapa jam dan ubah menjadi minit dan saat.
    8.-Hitung luas segitiga
    9.-Masukkan nombor di papan kekunci, maka jika anda memasukkan 2, ia harus kuasa dua, 3 kubus, 4 hingga keempat dan seterusnya hingga 6.
    10-Hitung pencen yang mesti dibayar oleh pelajar, kod khas mesti dimasukkan, dan hari-hari tunggakan:
    KOD
    KHAS
    JUMLAH
    SELAMA SETIAP HARI
    1
    PENGIRAAN
    160
    1
    2
    MENJAGA
    150
    1.5
    3
    SETIAUSAHA
    140
    2
    4
    PELANCONGAN
    180
    2.5
    5
    PERAKAUNAN
    160
    1
    Anda mesti menunjukkan kepakaran yang anda pelajari, kos pencen, lalai dan jumlah keseluruhan yang perlu dibayar.

  13.   Charly kata

    Helo, bolehkah seseorang menolong saya?
    Saya memerlukan «Meminta tiga perkataan dengan papan kekunci dan memaparkannya mengikut urutan abjad dari A hingga z»
    Dalam bahasa Bash atau sh untuk LINUX porfaborrrr