Sekiranya anda memulakan sistem Linux, istilah seperti "Skrip Shell" atau "Skrip Bash"Ini boleh menjadi perkara biasa - Tetapi apa maksudnya? Sebelum kita mengetahui secara terperinci, mempelajari skrip Bash dapat membantu anda menjimatkan masa dalam melaksanakan dan melakukan berbagai tugas sistem dan memahami baris perintah Linux (Terminal) dengan lebih baik dan mengautomasikan beberapa tugas sistem.
Apa itu Bash?
Bash, singkatan dari "Bourne-Again-Shell," adalah jurubahasa Unix shell atau bahasa perintah untuk sistem operasi GNU. Ini telah menjadi Shell utama untuk edaran Linux dan rilis macOS Apple sebelum macOS Catalina. Bash juga tersedia untuk Windows 10 melalui subsistem Windows untuk Linux.
Bash biasanya berjalan di tetingkap teks yang biasanya dikenal sebagai Terminal, di mana pengguna mengetik perintah untuk melakukan pelbagai tugas. Bash juga dapat menjalankan perintah yang ditulis dalam file, metode yang disebut sebagai "Skrip bash."
Perbezaan antara skrip Bash dan Shell Scripting
Skrip shell dan skrip Bash bukan perkara yang sama. Dengan skrip Bash, anda secara eksplisit menggunakan bash shell. Sebaliknya, skrip Shell dapat menjadi kata yang luas kerana kita mempunyai cengkerang lain selain Bash. Beberapa yang paling umum termasuk Korn (ksh), C shell (csh), Z shell (zsh), dan Bash shell (sh). Namun, tidak mengejutkan apabila terdapat orang yang menggunakan skrip bash dan shell scripting secara bergantian untuk membawa maksud yang sama. Posting kami di Top 6 Open Source Shells untuk Linux memberikan penerangan terperinci mengenai shell ini.
Dalam catatan ini, kita akan melihat skrip Bash. Secara lalai, banyak pengedaran Linux yang tersedia menggunakan shell Bash. Lihat siaran kami di 6 Distribusi Linux terbaik untuk pemula. Untuk mengesahkan shell yang anda gunakan pada edaran Linux anda sekarang, jalankan perintah di Terminal.
gema $ SHELL
Dari gambar di atas, anda dapat melihat jurubahasa lalai dalam sistem saya adalah bash. Pada masa ini, saya menjalankan Ubuntu 20.04 LTS. Mari selami!
Memahami Skrip Bash
Skrip Bash adalah fail teks yang mengandungi perintah bash yang dijalankan untuk melakukan berbagai tugas. Untuk menulis skrip ini, anda hanya memerlukan penyunting teks ringkas seperti gedit, pad daun, vim, nano, dan banyak lagi. Harap ingat untuk menyimpan skrip anda dengan .sh
peluasan dan sebagai teks biasa dan bukan teks kaya. Salah satu editor kegemaran saya yang saya gunakan untuk menulis skrip adalah penyunting nano.
Menamakan, Menetapkan kebenaran dan Melaksanakan skrip Bash
Seperti yang dijelaskan di atas, pastikan untuk menggunakan .lanjutan untuk skrip bash anda. Contohnya, anda boleh mempunyai skrip dengan namanya fosslinux_backup.sh
. Namun, lebih baik jika anda berhati-hati dengan menamakan skrip anda. Sebagai contoh, kebanyakan orang suka menyimpan sebahagian besar skrip mereka sebagai "ujian."Tidak diketahui oleh kebanyakan orang, ada perintah built-in Unix yang disebut ujian, yang memeriksa jenis fail dan membandingkan nilai. Anda dapat menggunakan perintah mana untuk memeriksa apakah ada program dengan nama yang sama dengan skrip anda untuk mencegah konflik program.
yang [perintah] e.g ujian mana
Dari keluaran di atas, kita dapat melihat bahawa ujian sudah menjadi perintah terbina dalam. Oleh itu, untuk mengelakkan konflik antara program, saya tidak akan menamakan skrip saya sebagai "Ujian."
Untuk membuat skrip dapat dilaksanakan untuk setiap pengguna, gunakan perintah di bawah ini:
chmod + x [skrip.sh]
Untuk membuat skrip dapat dilaksanakan untuk pengguna saat ini, gunakan perintah di bawah:
chmod u + x [skrip.sh]
Sekarang untuk menjalankan skrip, jalankan perintah di bawah:
./ [nama_krip]
Dengan kaedah di atas, anda akan menyedari bahawa anda perlu menggunakan cd
perintah untuk pindah ke direktori yang mengandungi skrip atau lulus jalan ke skrip. Walau bagaimanapun, terdapat jalan penyelesaian untuk ini. Simpan skrip anda di tong sampah
direktori ada di direktori utama.
Dengan kemas kini baru-baru ini, sebilangan besar pengedaran tidak disertakan dengan tong sampah
folder secara lalai. Oleh itu, anda dikehendaki membuatnya secara manual. Dengan meletakkan skrip anda di folder ini, Anda dapat menjalankan skrip dengan mengetik namanya di Terminal tanpa menggunakan cd
dan ./
arahan.
Garis panduan Bash Scripting
Sebelum menulis skrip pertama anda, ada beberapa panduan yang perlu anda fahami ketika menulis skrip.
- Semua skrip anda harus bermula dengan baris “#!/ bin / bash."
- Letakkan setiap arahan pada baris baru.
- Setiap komen dimulakan dengan
#
simbol. - Perintah dilampirkan dengan
()
kurungan.
The #!/ bin / bash
Pernyataan (Hash-Bang Hack) adalah jalan menuju shell yang akan kita gunakan. Sekiranya anda menggunakan shell lain, maka anda perlu mengedit jalan ini. Kami memahami bahawa semua komen bermula dengan #
simbol. Namun, apabila diikuti dengan a (!)
tanda di Hack-Bang Hack, skrip terpaksa dijalankan dengan cangkang yang ditunjukkan oleh garis ini. Dalam kes kami, ini adalah shell Bash.
Skrip Bash Pertama Anda
Seperti kebanyakan bahasa pengaturcaraan, kami akan menulis skrip yang mencetak "Hai dunia" penyataan semasa dilaksanakan. Buka editor teks kegemaran anda dan tampal arahan di bawah. Simpan fail teks sebagai fossHelloWorld.sh
atau nama lain yang bukan perintah terbina dalam.
#!/ bin / bash # Skrip ini akan mencetak 'Hello World' di Gema Terminal "Hello World"
Setelah anda menyimpan fail tersebut, buatlah ia dapat dilaksanakan dengan melaksanakan perintah di bawah ini:
chmod + x fossHelloWorld.sh
Sekarang, jalankan dengan arahan di bawah:
./ fossHelloWorld.sh
Skrip di atas hanya mempunyai tiga baris. Yang pertama adalah Hash-Bang Hack, yang telah kita bincangkan di atas, yang kedua adalah komen, dan yang ketiga adalah perintah yang akan dilaksanakan. Perhatikan, komen tidak pernah dilaksanakan.
Mari lihat ciri skrip bash lain yang boleh anda gunakan.
Perintah gema
Perintah Echo digunakan untuk mencetak output pada baris perintah Linux atau Terminal. Sekiranya anda seorang pembangun dan pernah bekerja dengan PHP sebelum ini, anda juga mesti mendapat arahan ini. Mari tulis skrip bash kecil untuk menunjukkan bagaimana arahan ini berfungsi.
#!/ bin / bash # Mari kita cetak gema baris pertama "Ini adalah Fosslinux.com - Dengan baris baru "# Mari cetak pernyataan Kedua tanpa gema baris baru -n" Ini Fosslinux - Tiada Baris baru "
Simpan skrip anda, berikan izin yang diperlukan, dan jalankan.
Untuk memahami kodnya, perintah gema pertama mencetak pernyataan dan menuju ke baris seterusnya. Perintah gema kedua mempunyai -n
hujah yang menghalang skrip daripada pergi ke baris seterusnya. Anda boleh menggunakan banyak pilihan lain dengan perintah Echo, termasuk pemboleh ubah, seperti yang akan kita lihat di bawah.
Pemboleh ubah
Pemboleh ubah adalah bahagian yang umum dan perlu dari mana-mana bahasa pengaturcaraan. Seseorang boleh menyatakan pemboleh ubah Bash dalam beberapa cara. Semasa memberikan nilai ke sebarang pemboleh ubah, anda tidak perlu menggunakan simbol apa pun. Walau bagaimanapun, apabila memanggil nilai pemboleh ubah, anda perlu menggunakan $
tanda pada permulaan pemboleh ubah.
Anda boleh menggunakan pemboleh ubah di Terminal atau sebagai skrip. Jalankan arahan di bawah di Terminal anda.
myWebsite = "Fosslinux.com "echo $ myWebsite
Sekarang mari kita buat skrip bash yang mengambil dua input dari pengguna dan menyimpannya dalam pemboleh ubah $ x
dan $ y
. Skrip kemudian akan memeriksa sama ada kedua-dua nilai itu sama atau tidak.
#!/ bin / bash gema "Masukkan nombor pertama" baca gema "Masukkan nombor kedua" baca b jika [[$ a -eq $ b]] maka gema "Nombor sama" lain gema "Nombor tidak sama" fi
Simpan skrip dan jalankan. Dari gambar di bawah, anda dapat melihat kami memasukkan nilai yang berbeza, dan skrip dapat memeriksa sama ada nilainya sama atau tidak.
Sekarang, mari kita perhatikan kodnya dengan lebih dekat. Pernyataan dua gema pertama mendorong pengguna memasukkan input nombor Pertama dan kedua. The membaca
arahan akan menunggu pengguna memasukkan nombor dan menyimpannya ke pemboleh ubah yang ditentukan. Dalam kes kami, itu a
dan b
. Kami kemudian mempunyai pernyataan if yang memeriksa sama ada kedua-dua nilai itu sama atau tidak.
Penyataan bersyarat
Dalam mana-mana bahasa pengaturcaraan, pernyataan bersyarat mengawal aliran program. Sebilangan kod akan dilaksanakan hanya apabila syarat tertentu dipenuhi. Beberapa pernyataan bersyarat yang paling umum termasuk "jika-kemudian-lain" dan "kes."Berikut adalah sintaks asas penyataan if-then-else.
jika [[keadaan]] makayang lain fi
Lihatlah skrip di bawah ini, yang menggunakan pernyataan bersyarat "if-then-else".
#!/ bin / bash echo "Enter Your Age" umur baca jika ((umur> 18)) kemudian gema "Anda boleh pergi ke pesta" lain gema "Anda tidak layak untuk pergi ke pesta" fi
Mari kita baca skrip di atas. Kami mempunyai gema
pernyataan yang mendorong pengguna memasukkan nombor umur mereka. The membaca
penyata menyimpan usia yang dimasukkan ke pemboleh ubah "usia."Kami kemudian mempunyai pernyataan bersyarat if-then-else yang memeriksa sama ada umurnya lebih daripada 18 sebelum memberi arahan kepada pengguna.
Gelung
Gelung biasanya digunakan semasa anda ingin melaksanakan sekeping kod beberapa kali. Sebagai contoh, jika saya ingin mengucapkan 1000 baris pernyataan "Selamat Datang di Fosslinux", saya memerlukan 1000 pernyataan gema. Walau bagaimanapun, dengan gelung, yang perlu saya lakukan adalah menentukan berapa kali saya mahu pernyataan itu digema atau dicetak di Terminal. Bash menyokong tiga jenis gelung; Untuk Gelung, Sementara Gelung, dan Gelung Sampai. Mari kita lihat masing-masing.
-
Untuk Gelung
A For Loop digunakan untuk melakukan iterasi melalui senarai data yang ditentukan atau array. Berikut adalah sintaks asas Bash For Loop;
untuk Nilai dalam 1 2 3 4 5… N lakukan instruksi1 arahan2 arahan-N selesai
atau,
untuk VALUE dalam file1 file2 file3 lakukan instruksi1 pada $ NILAI arahan2 arahan-N selesai
Lihat skrip di bawah. Ia berulang sepanjang hari dalam seminggu dan mencetaknya di Terminal mengikut baris.
#Baca nama hari minggu dalam setiap lelaran gelung untuk hari pada hari Isnin Selasa Rabu Khamis Jumaat Sabtu Ahad lakukan gema "$ day"
Mari simpan skrip sebagai ForLoop.sh
dan laksanakannya. Berikut adalah tangkapan skrin output.
Itu hanyalah contoh ringkas mengenai perkara yang boleh anda lakukan dengan For Loop. Anda juga boleh menggabungkannya dengan pernyataan bersyarat untuk menyelesaikan tugas tertentu.
-
Gelung Sementara
While Loop melaksanakan tugas tertentu sementara keadaan tertentu tetap Benar. Dalam setiap lelaran, gelung akan memeriksa keadaan terlebih dahulu sebelum melaksanakan arahan. Apabila keadaannya Salah, gelung akan berakhir. Sintaks asas gelung bash While adalah seperti berikut:
sementara [SYARAT] dilakukan [PERINTAH] dilakukan
Sebagai contoh, kita boleh mempunyai skrip yang akan mencetak pernyataan “Selamat datang ke FOSSLINUX.KOM ” 20 kali sehingga pemboleh ubah X ditetapkan menjadi 20. Mari cuba dan laksanakan secara praktikal. Lihat skrip di bawah.
#!/ bin / bash x = 1 sementara [$ x -le 20] bergema "Selamat Datang di FOSSLINUX.COM "x = $ (($ x + 1)) selesai
Mari simpan skrip sebagai WhileLoop.sh
dan laksanakannya. Berikut adalah tangkapan skrin output.
Mari lihat skrip While Loop di atas. Kami mula-mula menyatakan pemboleh ubah X memberikannya nilai 1. Kami kemudian membuat pernyataan Sementara yang mengeluarkan pernyataan “Selamat Datang di FOSSLINUX.COM ”sementara X kurang dari 20. Terakhir, kami menambah X satu demi satu setiap lelaran.
-
Gelung Sampai
Gelung Bash Sampai digunakan untuk melaksanakan sekumpulan arahan atau perintah selagi keadaan set dinilai menjadi salah. Berikut adalah sintaks asas Sampai Loop.
sehingga [SYARAT] dilakukan [INSTARUKSI / PERINTAH] dilakukan
Sama dengan While Loop, Sampai Loop terlebih dahulu menilai keadaan set sebelum melaksanakan arahan atau perintah. Sekiranya keadaan dinilai menjadi salah, arahan akan dilaksanakan. Gelung ditamatkan apabila keadaan dinilai menjadi benar. Lihat contoh di bawah.
#!/ bin / bash count = 0 hingga [$ count -gt 5] do echo Counter: $ count ((hitungan ++)) selesai
Selepas kita menyimpan dan menjalankan skrip di atas, kita mendapat output di bawah:
Skrip di atas terlebih dahulu membuat kiraan pemboleh ubah dan menetapkannya menjadi sifar (0). Itulah keadaan yang mengawal aliran program kami. Sampai Loop memeriksa sama ada nilai kiraan lebih besar daripada 5. Sekiranya tidak, ia akan mencetak arahan yang dihantar. Walau bagaimanapun, jika nilainya lebih besar dari 5, gelung akan berhenti serta merta. Terakhir, kami menambah nilai kiraan sebanyak 1 (kiraan ++).
Fungsi Bash
Dalam pengaturcaraan dan skrip, Fungsi digunakan untuk menyimpan sekeping kod yang dapat digunakan kembali yang diperlukan untuk melakukan tugas tertentu. Oleh itu, jika anda mempunyai perintah serupa yang anda ingin laksanakan di bahagian yang berlainan dalam skrip anda, anda tidak perlu menulis perintah ini berulang kali. Lampirkan mereka dalam fungsi dan laksanakan fungsi tersebut sebagai gantinya.
Berikut adalah sintaks asas fungsi Bash.
fungsi_nama ()
atau,
fungsi fungsi_nama
Mari buat skrip ringkas yang menggunakan fungsi. Kami mula-mula membuat fungsi yang disebut "myFunction," yang mengeluarkan pernyataan "Hello saya adalah fungsi pertama" ketika dipanggil. Fungsi kedua, "myCities," sedikit maju kerana memerlukan argumen diluluskan. Argumen diberikan setelah memanggil nama fungsi. Mereka boleh diakses dalam fungsi sebagai $ 1.
#!/ bin / bash myFunction () echo "Hello I am the first function" echo "Hello I am the first function" echo echo "Ini adalah fungsi kedua" fungsi myCities () echo Hello $ 1 myFunction myCities Washington, D.C myCities Phoenix
Setelah menyimpan dan melaksanakan skrip, kami mendapat output di bawah.
Menu Bash
Semasa menulis skrip untuk melakukan tugas lanjutan, Anda mungkin memerlukan pengguna untuk memilih satu pilihan dari beberapa pilihan yang ditampilkan di Terminal. Untuk mencapainya, kami akan menggunakan bash pilih
perintah.
Ini membuat skrip menu sederhana yang akan mendorong pengguna untuk memilih distribusi Linux kegemaran mereka dari senarai. Lihat skrip di bawah.
#!/ bin / bash #Print message untuk pengguna bergema "Pilih Distribusi Linux kegemaran anda" pilih distro di Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali lakukan #Cetak nilai yang dipilih jika [[$ distro == "Exit"]] kemudian keluar 0 yang lain echo "Pengedaran Linux terpilih adalah $ distro" fi selesai
Mari simpan skrip sebagai menu.sh dan laksanakannya. Kami mendapat output di bawah.
Dalam skrip di atas, kami mempunyai senarai pengedaran Tujuh Linux dari pengguna yang akan memilihnya. Setelah mereka membuat pilihan, ia disimpan dalam pemboleh ubah distro
dan kemudian dicetak dengan menggabungkannya dengan tali "Pengedaran Linux yang dipilih adalah." Menu pilih Bash sangat berguna, terutamanya apabila anda mempunyai banyak skrip yang menjalankan tugas yang berbeza, dan seseorang harus memilih yang mana yang ingin mereka laksanakan.
Aritmetik
Setiap bahasa pengaturcaraan menyokong pelaksanaan operasi aritmetik, dan skrip bash tidak terkecuali. Namun, bagaimana kita menjalankan operasi aritmetik sedikit berbeza. Di bawah ini adalah salah satu cara untuk melakukan operasi aritmetik dalam bash. Kami akan melihat empat jenis operasi aritmetik - Jumlah, pembahagian dan pendaraban.
#!/ bin / bash # Hitung jumlah hasil = $ ((70 + 15)) # Cetak jumlah nilai gema "sum = $ hasil" # Hitung hasil pembahagian = $ ((100/25)) # Cetak nilai pembahagian echo "pembahagian = $ hasil "#Kira hasil pendaraban = $ ((15 * 15)) gema" Pendaraban = hasil $ "
Mari simpan skrip di atas sebagai aritmetik.sh dan laksanakannya. Kami mendapat output di bawah.
Kesimpulannya
Itu adalah panduan pemula yang lengkap untuk memulakan skrip Bash. Walau bagaimanapun, ada lebih banyak perkara untuk Bash selain daripada yang dibahas dalam tutorial ini. Salah satu tempat yang saya cadangkan untuk memajukan kemahiran anda adalah Manual Rujukan Bash GNU. Sekiranya anda menghadapi sebarang masalah atau komen pada siaran ini, sila tekan komen di bawah.