Pemrograman di bash - bagian 2

Bagian dua ini tutorial mini pemrograman dalam Menampar, tempat kami belajar menggunakan siklus dan alat lain yang akan membantu kami meningkatkan fungsi kami script.

Jika bersyarat

Fungsi If adalah untuk menerapkan filter dan menjalankan operasi atau tugas untuk setiap jenis filter yang diterapkan. Strukturnya adalah sebagai berikut:

Jika [kondisi]; lalu perintah elif [kondisi]; lalu perintah lain; perintah fi

Sebuah contoh ditampilkan di sebelah perulangan For di bagiannya masing-masing.

Siklus

1. While: itu akan menjalankan semua perintah yang ditentukan antara do dan done selama kondisinya benar. Jika kita ingin meneruskan operator pembanding, ekspresi harus dalam tanda kurung.

sementara CONDITION / COMMAND melakukan perintah yang dilakukan

Contoh: tabel perkalian bilangan

#! / bin / bash X = 1 echo "Masukkan angka dan tekan ENTER" baca M # Loop mengontrol bahwa X kurang dari atau sama dengan 10 sementara [$ X –le 10] melakukan #Dalam R kami menyimpan perkalian X by MR = $ [X * M] # Perkalian ini tercetak di layar echo "$ M * $ X = $ R" # Dengan kata lain, kita tingkatkan nilai X sebanyak 1 satuan misalkan X = $ X + 1 selesai

2. Untuk: menyimpan daftar elemen dalam variabel, yang akan digunakan untuk melakukan operasi tertentu dengan setiap siklus.

untuk VARIABEL di ELEMEN lakukan perintah

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

# / bin / bash #Kami membuat direktori sumber dan tujuan ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Kami memposisikan diri kami di cd sumber $ ORIGIN #Dari semua file, kami hanya menginginkan yang # call FILE untuk FILE di * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f menyaring file biasa, karena direktori #tidak ada yang baik untuk kita. –Tidak menyaring # file yang "lebih baru" dari # yang ditemukan di folder tujuan jika [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; lalu echo "Menyalin $ FILE ..." # kita menyalin file dengan cp cp $ FILE $ ARCH-DESTINATION fi selesai #Kita cd untuk keluar dari folder sumber cd

Contoh lain: script dimana pengguna harus menebak angka acak yang dihasilkan oleh komputer.

# / bin / bash #A nomor acak dihasilkan dari 1 sampai 10, # disimpan dalam ACAK ACAK = $ [$ ACAK% 10 + 1] sementara [1] melakukan echo –n "Masukkan nomor:" baca NUM # Bandingkan jika nomor yang dipilih oleh pengguna #Sama dengan ACAK; ingatlah untuk menggunakan $ untuk mengevaluasi #values ​​dari variabel dan bukan namanya if [“$ NUM –eq“ $ RANDOM ”]; lalu gema "Anda benar!" #break memungkinkan untuk mengakhiri loop sementara break #Jika jumlahnya kurang dari RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; lalu echo "It is less" "Jika tidak, ini lebih besar dari ACAK lain echo" IS lebih besar "selesai

3. Sampai: sangat mirip strukturnya dengan While, kecuali bahwa kode selalu dijalankan sementara evaluasi kondisinya negatif, yaitu, program terus mengeksekusi "sampai kondisi terjadi"

sampai CONDITION / COMMAND melakukan perintah selesai

Contoh: cetak angka 10-20 dalam urutan menurun

#! / bin / bash CONT = 20 # Selama penghitung kurang dari 10 (-lt, "lebih rendah # dari") kode dijalankan hingga [$ CONT -lt 10]; lakukan echo "COUNTER $ CONT" #A CONT dikurangi satu unit biarkan CONT- = 1 selesai

4. Pilih: siklus terakhir ini adalah kasus khusus, karena biasanya digunakan untuk membuat menu dengan cepat. Cara kerjanya mirip dengan loop For.

pilih VARIABEL di DAFTAR perintah selesai

Contoh: beri pengguna kemampuan untuk melanjutkan atau mengakhiri skrip.

#! / bin / bash #item adalah variabel yang merespon apa yang dipilih #pengguna, Lanjutkan dan Selesai adalah #options yang tersedia untuknya, meskipun opsi lain dapat ditambahkan # pilih item lainnya di Continue Finish lakukan #Jika pengguna memilih akhiri program, lalu dengan istirahat kita keluar dari siklus. jika [$ item = "Selesai"]; kemudian istirahat selesai
Terima kasih Juan Carlos Ortiz!

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Sedang Sulit dijo

    Saya pikir sesuatu seperti ini: tar -cf - Directory | (cd / other / direktori; tar -xvf -)

    Maka akan terlihat seperti / another / directory / Directory
    Dengan cara itu saya mengompresi Direktori dan Anda mendekompresi di tempat lain….

  2.   Miguel Angel dijo

    Halo, tuto yang baik, saya sedang belajar tentang subjek dan semuanya baik-baik saja, hanya saja saya belum dapat membuat program yang membantu saya, untuk melihat apakah Anda dapat membantu saya.

    Saya perlu melakukan siklus, di mana ia akan menerima sebagai parameter daftar file sumber, daftar ini hanya membawa nama (tanpa ekstensi), sehingga siklus melakukan hal berikut, cari nama tersebut yang diterima dalam direktori (yaitu yang akan kita cari), ekstrak dan salin file (nama lengkap sudah dengan ekstensi) dan jalur absolut dan buat di file tujuan lain.

    Sejauh ini saya memiliki yang berikut:

    saat membaca baris
    do
    echo -e "$ line"
    temukan / home / myuser / dof "$ line" -exec readlink -f {};
    done <testlist.txt Sejauh ini saya membaca file, setiap baris yang dimilikinya, tetapi saya tidak dapat membuatnya mencari file itu dan mengekstrak informasinya, jika Anda dapat membantu saya, terima kasih. Bersulang

  3.   Pamela galaviz dijo

    Terima kasih banyak atas kontribusinya 🙂

  4.   Mario Xaverius dijo

    halo ... Saya harap Anda dapat membantu dalam praktik berikutnya ... Unzip file di tgz di direktori yang ditentukan, selain menentukan pengguna dan grup untuk semua direktori dan file yang ada, dan memberikan izin ke file dan direktori
    catatan: file siap untuk dibaca dan ditulis
    izin eksekusi direktori

  5.   johnk dijo

    ARCH-DESTINATION adalah variabel di mana kita ingin menyimpan jalur file tujuan, simpan untuk redundansi. Kemudian, ke variabel ini kami menunjukkan variabel DESTINATION, yang di atas berisi jalur ke folder Dokumen dan kami menambahkan "variabel" FILE, yang berisi nama file. Jika file itu, misalnya, list.doc, variabel ARCH-DESTINATION akan sama dengan /home/Usuario/Documentos/listado.doc

  6.   Mari gunakan Linux dijo

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

    Memeluk! Paul.

  7.   Jujur dijo

    Selamat pagi sobat terima kasih, bagus sekali blog anda, tapi saya tidak bisa mendapatkan bagian pertama dari Pemrograman di Bash, dimana saya mendapatkannya terima kasih, salam

  8.   Saito Mordraw dijo

    Dua bagian luar biasa, selamat yang tulus.

    Sangat indah.

  9.   Fredy dijo

    Bien

  10.   Hugo dijo

    Halo, saya sedang membuat program dengan CASE, apa yang saya ingin lakukan dan saya tidak tahu caranya, misalnya:

    echo Memilih opsi:
    gema
    echo 1. opsi 1
    echo 2. opsi 2
    echo 3. opsi 3
    echo 4. opsi 4
    echo 5. Keluar
    baca var
    kasus "$ var" di
    1)
    echo "Anda memilih opsi 1"
    ;;
    2)
    echo "Anda memilih opsi 2"
    ;;
    3)
    membuang "… .."
    ;;
    4)
    membuang "…."
    ;;
    5)
    membuang "…"

    ;;
    *)
    echo "opsi yang salah"
    ;;
    esac

    ok yang saya tidak tahu bagaimana melakukannya adalah ketika saya memilih opsi 4 yaitu keluar, tanyakan apakah saya benar-benar ingin keluar, dan beri saya 2 opsi Y & T

    dan yang lainnya adalah ketika Anda memilih sesuatu selain angka 1..5 jangan memilih saya dari skrip….

    Bisakah Anda membantu saya terima kasih.

  11.   DAPAMA 21 dijo

    Hai, saya mulai membuat skrip 1 bulan yang lalu dan terima kasih atas kiriman skrip Anda. Saya akan melakukan sekitar 15-20. Terima kasih banyak sebelumnya. Tapi sekarang guru kami telah memberi kami pekerjaan yang membuat saya mandek. Karena guru bertanya:
    melewati direktori, salin ke rumah Anda semua file yang ada di direktori itu menurut abjad dan beri nama file1 file2 dll ... dll ...
    Sekarang saya pada saat menemukan atau mencari, saya ingin menggunakan find tetapi ketika memberikan kode kesalahan saat saya memasukkannya ke dev null, izin ditolak maka saya salah dan meletakkan lokasi saya di sini:
    cari $ 1 | grep "/ $ {1} \ $"
    tapi tentu saja dengan ini mereka semua keluar ...
    Terima kasih banyak jika Anda membacanya.
    Jika Anda dapat membantu saya, itu akan menjadi bantuan besar.

  12.   luis dijo

    Saya ingin Anda membantu saya dalam hal ini.
    1.-Masukkan bilangan bulat pada keyboard dan tampilkan dua kali dan tiga kali lipat angka itu di layar. 2.- Buatlah program untuk memutuskan apakah angka yang dimasukkan oleh keyboard dapat dibagi 3 atau tidak.
    3.- Buatlah program untuk mencari penjumlahan dari: ???????? + ???????? + ???????? + ???????? + ⋯? ???????
    4.- Buatlah program untuk mencari penjumlahan 1 + 3 + 5 + 7 + 9 · · · + (2n + 1).
    5. -Buat program yang mencetak kata Linux di layar 10 kali
    6. -Buat program yang mencetak kata Linux di layar beberapa kali yang ditunjukkan oleh pengguna.
    7.-Masukkan jumlah dalam jam dan ubah menjadi menit dan detik.
    8.-Hitung luas segitiga
    9. -Masukkan angka pada keyboard, lalu jika Anda memasukkan 2 harus dikuadratkan, 3 kubik, 4 untuk keempat dan seterusnya sampai 6.
    10-Hitung pensiun yang harus dibayar siswa, kode khusus harus dimasukkan, dan hari-hari menunggak:
    KODE
    SPESIALITAS
    JUMLAH
    DURASI PER HARI
    1
    MENGHITUNG
    160
    1
    2
    PERAWATAN
    150
    1.5
    3
    SEKRETARIAT
    140
    2
    4
    PARIWISATA
    180
    2.5
    5
    AKUNTANSI
    160
    1
    Anda harus menunjukkan spesialisasi yang Anda pelajari, biaya pensiun, default dan jumlah total yang harus dibayarkan.

  13.   charly dijo

    Halo, ada yang bisa membantu saya?
    Saya memerlukan «Minta tiga kata dengan keyboard dan menampilkannya dalam urutan abjad dari A hingga z»
    Dalam bahasa Bash atau sh untuk LINUX porfaborrrr