Pengaturcaraan dalam bash - bahagian 1

Walaupun kita umumnya menggunakannya untuk operasi pentadbiran atau pengurusan fail, yang konsol de Linux memperluas fungsinya jauh melebihi tujuan itu, membolehkan kita memprogram skrip Panduan ini tidak dimaksudkan untuk menjadi rujukan lengkap mengenai pengaturcaraan Bash, melainkan pengenalan kepada perintah dan struktur dasar, yang akan memungkinkan kita untuk memperluas kekuatan sistem GNU / Linux kami.

Apa itu "Skrip"?

Pada dasarnya kita mengatakan bahawa ia adalah fail yang mengandungi kod yang ditulis dalam bahasa pengaturcaraan tertentu yang digunakan oleh sistem untuk tugas tertentu. Ia tidak perlu mempunyai input luaran atau antara muka grafik, tetapi perlu menyebabkan output data yang diproses (walaupun pengguna tidak melihatnya).

Bahasa yang digunakan oleh Bash didefinisikan oleh penafsirnya sendiri dan menggabungkan sintaks Shell yang lain, seperti Shell Korn (ksh) atau C Shell (csh). Banyak perintah yang biasanya digunakan di konsol juga dapat digunakan dalam skrip, kecuali perintah yang berkaitan dengan sebaran tertentu.

Struktur Skrip

Untuk memulakan kita mesti mempunyai editor teks dan keinginan untuk memprogram. Fail yang kita simpan dengan sambungan .sh dapat dijalankan (atau ditafsirkan) oleh konsol, selagi baris pertama adalah berikut:

#! / Bin / Bash

Ini memberitahu sistem untuk menggunakan konsol untuk menjalankan fail. Di samping itu, watak # membolehkan anda menulis komen. Untuk membuat contoh paling mudah, kami menambah satu baris lagi, seperti yang ditunjukkan dalam gambar berikut:

Perintah echo memaparkan mesej di skrin, dalam hal ini khas "Hello world!" Sekiranya kita menyimpannya dan melaksanakannya dengan konsol kita akan melihat hasilnya.

Perintah Asas

Perintah berikut adalah biasa dan sangat berguna untuk semua jenis program. Kami menjelaskan bahawa ada banyak lagi, tetapi buat masa ini kami akan membahas perkara berikut.

Alias: membenarkan rentetan kata diganti dengan yang lebih pendek, memungkinkan pengurangan kod.

#ciptakan alias yang disebut per dengan alamat folder #Downloads alias per = '/ rumah / pengguna / Muat turun' # Setiap kali kita mahu menggunakannya, kita hanya perlu memanggil # kata baru per #Untuk menghancurkan alias itu, kita menggunakan unalias unalias per

rehat: membolehkan anda segera keluar dari gelung untuk, sementara, hingga atau pilih (kami akan mengkaji gelung secara terperinci kemudian)

# Buat gelung yang akan memberikan nombor dari 1 hingga 5 # untuk setiap "putaran gelung" untuk pembilang dalam 1 2 3 4 5 lakukan #Kami mencetak nilai semasa pemboleh ubah #counter, yang dianalisis oleh watak $ echo " $ counter ”#Jika nilai pembilang sama dengan 3 jika [$ counter –eq 3] maka #Pecahan keluar dari gelung untuk rehat

teruskan - Sama seperti putus, kecuali bahawa ia mengabaikan gelung semasa dan pergi ke yang berikutnya.

# Buat gelung yang akan memberikan nombor dari 1 hingga 5 # untuk setiap "putaran gelung" untuk pembilang dalam 1 2 3 4 5 lakukan #Jika nilai pembilang sama dengan 3 jika [$ kaunter –eq 3] maka #Continue mencegah sisa # kitaran semasa daripada dianalisis dengan melonjak ke pusingan seterusnya, iaitu #value 3 tidak akan dicetak. teruskan echo "$ counter" selesai

menyatakan: menyatakan pemboleh ubah dan memberikan nilai kepada mereka, sama seperti jenis huruf (ia berfungsi dengan cara yang sama). Kita boleh menggabungkannya dengan beberapa pilihan: -i menyatakan bilangan bulat; -r untuk pemboleh ubah hanya baca, yang nilainya tidak dapat diubah; –A untuk tatasusunan atau “tatasusunan”; -f untuk fungsi; -x untuk pemboleh ubah yang boleh "dieksport" di luar persekitaran skrip itu sendiri.

menyatakan –i num = 12 menyatakan –x pi = 3.14

help: menunjukkan pertolongan untuk arahan tertentu.

pekerjaan: menunjukkan proses yang sedang berjalan.

#Dengan –c kita menunjukkan nama perintah, dengan –p # pid (id proses) setiap proses. pekerjaan -cp

biarkan: menilai ungkapan aritmetik

let a = 11 let a = a + 5 # Akhirnya kita mencetak nilai yang 16 echo "11 + 5 = $ a"

local: buat pemboleh ubah tempatan, yang sebaiknya digunakan dalam fungsi skrip itu sendiri untuk mengelakkan kesilapan. Anda boleh menggunakan fungsi yang sama dengan perintah menyatakan.

local v1 = "Ini adalah pemboleh ubah tempatan"

logout: membenarkan keluar dari Shell sepenuhnya; berguna untuk kes di mana kita bekerja dengan lebih daripada satu tetingkap shell, di mana perintah keluar hanya akan membenarkan satu tetingkap dihentikan pada satu masa.

printf: membolehkan anda mencetak data dan memformatnya. Ia mempunyai banyak pilihan, jadi kami akan menyebutkan beberapa pilihan.

#% f dicetak sebagai angka terapung, n untuk # baris cetak baru "% fn" 5 5.000000 # & d memungkinkan untuk lulus nombor perpuluhan sebagai argumen printf "Terdapat% d pesanan bernilai dalam% d dolar.n" 20 500 Terdapat 20 pesanan bernilai 500 Dolar.

baca: baca baris dari input standard (modul yang digunakan dalam memuatkan data melalui papan kekunci misalnya). Kami boleh memberikan pilihan seperti: -t untuk memberi had had membaca; -sehingga setiap kata ditugaskan ke posisi dalam susunan aname; -d untuk menggunakan pembatas yang akan ditulis di hujung baris; dalam kalangan yang lain.

echo "Masukkan nama anda dan tekan ENTER" #Baca nama pemboleh ubah baca nama echo "Nama anda $ name"

taip: menerangkan arahan dan tingkah lakunya. Ia berguna untuk mengetahui definisi data untuk setiap arahan.

type –a '[' #type memberitahu kita bahawa [adalah perintah Shell builtin [adalah Shell builtin # -a membolehkan mencari direktori yang mengandungi # yang dapat dilaksanakan dengan nama yang dimasukkan. [ialah / usr / bin / [

ulimit: menghadkan akses dan penggunaan sumber sistem tertentu kepada proses, sesuai untuk program yang membenarkan perubahan pentadbiran atau yang ditujukan untuk pelbagai jenis pengguna. Semasa menetapkan had kita menulis nombor yang mewakili kilobyte had.

#Kita melihat had semasa kita ulimit –a # -f membolehkan pengguna mengehadkan tidak dapat # membuat fail yang lebih besar daripada 512000 Kb (500 #Mb) ulimit –f 512000 # -v menghadkan memori maya proses. ulimit –v 512000

tunggu: tunggu proses atau pekerjaan tertentu dijalankan untuk diteruskan.

# Skrip menunggu proses pid # 2585 dijalankan

tunggu 2585

Perintah berguna lain yang dapat kita tambahkan pada skrip diwakili oleh simbol.

!!: jalankan arahan terakhir sekali lagi

! wer: melaksanakan perintah terakhir yang dimulakan dengan ungkapan "wer".

'==', '! =', '>', '<', '> =', dan '<=': pengendali hubungan.

|: Pengendali ATAU biasanya menggunakan dua ungkapan biasa.

: arahan melarikan diri yang membolehkan anda memformat ungkapan. Contohnya: a untuk amaran suara, n untuk barisan baru, b untuk ruang belakang, dll.

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

    Hebat! Bagaimanapun, 2 komen: Tag Ubuntu terlalu banyak, kerana menyamaratakan sesuatu yang bersifat generik. Dan sekiranya tutorial ini terus maju, alangkah baiknya jika mereka saling berhubung antara satu sama lain….
    Selain itu, langkah ini menarik!

  2.   Mari gunakan Linux kata

    Sumbangan yang baik! Hebat!

  3.   Giovanni escobar sosa kata

    Hanya kekurangan rujukan bagi mereka yang ingin membahas masalah ini lebih jauh. Beberapa yang baik walaupun tidak begitu senang dijumpai di negara kita
    - Panduan praktikal untuk Perintah Linux, Editor, dan Pengaturcaraan Shell, Mark Sobell (Bab 8)
    - Pengaturcaraan Pro Bash, Chris FA Johnson (walaupun ini untuk mereka yang mempunyai rujukan lain atau sedikit lebih banyak pengetahuan).

    Artikel yang bagus.

  4.   Mari gunakan Linux kata

    Selamat bertarikh! Terima kasih!

  5.   Patricio Dorantes Jamarne kata

    : @ Fungsi "log in as" menghapus komen saya sebelumnya, jadi saya akan meringkaskannya lebih jauh:
    pekerjaan -cp
    bash: jobs: -c: pilihan tidak sah
    jobs: use: jobs [-lnprs] [jobspec…] atau jobs -x command [args]

    -eq -gt -lt tidak menerima pemboleh ubah titik perpuluhan, antara forum dan forum saya mendapati bahawa bc adalah sekutu yang baik:
    jika [`gema 9.999> 10 | bc` -eq 1]; kemudian
    echo "9.999 lebih besar daripada 10, pastikan pemproses anda masih berfungsi"
    lagi
    echo «9.999 tidak lebih besar daripada 10, semuanya berfungsi seperti biasa
    fi

  6.   BukanDariBrooklyn kata

    Posting ini merangkum dengan sangat baik semua umum skrip bash:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Di laman web ini, anda akan menemui banyak soalan dan jawapan mengenai keunikan bash:
    http://unix.stackexchange.com/questions/tagged/bash

    Berikut adalah beberapa skrip yang sangat menarik, dan hei, anda boleh mempelajarinya dengan membaca skrip orang lain:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   BukanDariBrooklyn kata

    Anda betul dengan apa yang anda katakan, kecuali bash. Setiap sistem yang saya lihat mempunyai bash in / bin / bash.

    Tetapi untuk ular sawa, perl, ruby, dan lain-lain, tidak mengapa menggunakannya. saya sudi

  8.   Guille kata

    Secara kebetulan, di kolej kami menggunakan skrip bash sehingga datanya adalah 10, sangat bagus!

  9.   alex saya nampak kata

    versi pdf untuk dimuat turun bagus !! 😀

  10.   Marco Antonio De Fuentes kata

    Laman web yang sangat baik. Saya akhirnya menemui sesuatu yang berguna. Terima kasih.