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.
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!
Sumbangan yang baik! Hebat!
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.
Selamat bertarikh! Terima kasih!
: @ 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
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
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
Secara kebetulan, di kolej kami menggunakan skrip bash sehingga datanya adalah 10, sangat bagus!
versi pdf untuk dimuat turun bagus !! 😀
Laman web yang sangat baik. Saya akhirnya menemui sesuatu yang berguna. Terima kasih.