Cara membuat skrip shell sederhana di linux

Cara membuat skrip shell sederhana di linux

Membuat skrip shell adalah salah satu keterampilan paling penting yang harus dimiliki pengguna Linux di ujung jari mereka. Skrip shell memainkan peran besar dalam mengotomatisasi tugas berulang yang sebaliknya akan membosankan mengeksekusi baris demi baris.

Dalam tutorial ini, kami menyoroti beberapa operasi skrip shell dasar yang harus dimiliki setiap pengguna Linux.

1. Buat skrip shell sederhana

Skrip shell adalah file yang terdiri dari ASCII teks. Kami akan mulai dengan membuat skrip shell sederhana, dan untuk melakukan ini, kami akan menggunakan editor teks. Ada cukup banyak editor teks, baik baris perintah maupun berbasis GUI. Untuk panduan ini, kami akan menggunakan editor vim.

Kami akan memulai dengan membuat skrip sederhana yang menampilkan "Halo Dunia”Saat dieksekusi.

$ vim halo.SH 

Tempel konten berikut dalam file dan simpan.

#!/bin/bash # cetak Hello World Message echo "Hello World!" 

Mari kita lewati line skrip shell.

  • Baris pertama - #!/bin/bash - dikenal sebagai header shebang. Ini adalah konstruk khusus yang menunjukkan program apa yang akan digunakan untuk menafsirkan skrip. Dalam hal ini, ini akan menjadi pesta shell ditunjukkan oleh /bin/bash. Ada bahasa skrip lainnya seperti Python yang dilambangkan oleh #!/usr/bin/python3 Dan Perl yang header shebang yang dilambangkan oleh #!/usr/bin/perl.
  • Baris kedua adalah komentar. Komentar adalah pernyataan yang menjelaskan apa yang dilakukan skrip shell dan tidak dieksekusi saat skrip dijalankan. Komentar selalu didahului oleh tanda hash #.
  • Baris terakhir adalah perintah yang mencetak 'Halo Dunia'Pesan di terminal.

Langkah selanjutnya adalah membuat skrip dapat dieksekusi dengan menetapkan izin menjalankan menggunakan Chmod perintah seperti yang ditunjukkan.

$ chmod +x halo.SH 

Akhirnya, jalankan skrip shell menggunakan salah satu perintah:

$ bash halo.sh atau $ ./Halo.SH 
Buat Skrip Hello World Shell

2. Menggunakan pernyataan bersyarat untuk menjalankan kode

Seperti bahasa pemrograman lainnya, pernyataan bersyarat digunakan dalam skrip bash untuk membuat keputusan, dengan hanya sedikit variasi dalam sintaksis. Kami akan menutupi jika, if-else, Dan Elif pernyataan bersyarat.

Contoh pernyataan if saja

Itu jika Pernyataan dapat digunakan untuk menguji satu atau beberapa kondisi. Kami akan memulai dengan penggunaan mendasar dari jika pernyataan untuk menguji satu kondisi. Itu jika Pernyataan ditentukan oleh Jika ... fi blok.

Jika perintah maka pernyataan fi 

Mari kita lihat skrip shell di bawah ini.

#!/bin/bash echo 'masukkan skor' baca x if [[$ x == 70]]; Lalu pekerjaan bagus!'fi 

Skrip shell di atas meminta pengguna untuk memberikan skor yang kemudian disimpan dalam variabel X. Jika skor sesuai 70, skrip mengembalikan output "Kerja bagus!". Operator perbandingan == digunakan untuk menguji jika skor dimasukkan, yang disimpan dalam variabel X, setara dengan 100.

Jika pernyataan dalam skrip shell

Operator perbandingan lain yang dapat Anda gunakan termasuk:

  • -Persamaan - Sama dengan
  • -ne - Tidak sama dengan
  • -LT - Kurang dari
  • -le - Kurang dari atau sama dengan
  • -LT - Kurang dari
  • -ge - Lebih dari atau sama dengan

Misalnya, if-statement Blokir di bawah mencetak 'Bekerja lebih keras'Jika skor input adalah nilai kurang dari 50.

if [[$ x -lt 50]]; Lalu bekerja lebih keras!'fi 
Jika pernyataan dalam skrip shell

Contoh pernyataan if-else

Untuk situasi di mana Anda memiliki 2 kemungkinan hasil: - apakah ini atau itu - pernyataan IF -Else sangat berguna.

Jika perintah maka pernyataan1 pernyataan lain2 fi 

Skrip di bawah ini membaca skor input dan memeriksa apakah lebih besar atau sama dengan 70.

Jika skor lebih besar dari atau sama 70, Anda mendapatkan 'Kerja bagus, Anda lulus!' pesan. Namun, jika skor jatuh di bawah 70, hasil 'Anda gagal'Akan dicetak.

#!/bin/bash echo 'masukkan skor' baca x if [[$ x -ge 70]]; Lalu pekerjaan yang bagus, Anda lewat!'lain echo' kamu gagal 'fi 
Pernyataan if-else dalam skrip shell

Contoh pernyataan IF-ELIF-ELSE

Dalam skenario di mana ada beberapa kondisi dan hasil yang berbeda, if-eLif-else pernyataan digunakan. Pernyataan ini mengambil format berikut.

Jika kondisi1 maka pernyataan 1 Elif condition2 Lalu pernyataan2 pernyataan else3 fi 

Misalnya, kami memiliki skrip untuk lotre yang memeriksa apakah nomor yang dimasukkan adalah salah satu 90, 60 atau 30.

#!/bin/bash echo 'masukkan skor' baca x if [[$ x -eq 90]]; Kemudian echo "Anda telah memenangkan hadiah pertama" Elif [[$ x -eq 60]]; Kemudian echo "Anda telah memenangkan hadiah kedua" Elif [[$ x -eq 30]]; Kemudian echo "Anda telah memenangkan hadiah kedua" lain Echo "silakan coba lagi" fi 
Pernyataan IF-ELIF-ELSE

3. Menggunakan pernyataan if dan logika

Anda dapat menggunakan jika pernyataan bersama DAN operator logika untuk menjalankan tugas jika dua kondisi terpenuhi. Itu && operator digunakan untuk menunjukkan DAN logika.

#!/bin/bash echo 'Harap masukkan user_id Anda' baca user_id echo 'silakan masukkan tag_no Anda' baca tag_id if [[($ user_id == “tecmint” && $ tag_id -eq 3990)]]; Kemudian gema "login sukses" lain menggemakan "kegagalan login" fi 

5. Menggunakan pernyataan if dengan atau logika

Saat menggunakan ATAU logika, yang diwakili oleh || simbol, salah satu kondisi perlu dipenuhi dengan naskah untuk memberikan hasil yang diharapkan.

#!/bin/bash echo 'Harap masukkan nomor acak' nomor baca jika [[(angka -eq 55 || angka -eq 80)]]; lalu echo 'ucapan selamat! Anda telah memenangkan 'lain echo' maaf, coba lagi 'fi 
Jika pernyataan dengan atau logika

Gunakan Looping Constructs

Pesta loop Izinkan pengguna untuk melakukan serangkaian tugas sampai hasil tertentu tercapai. Ini berguna dalam melakukan tugas yang berulang. Di bagian ini, kami akan mengintip beberapa loop yang juga akan Anda temukan dalam bahasa pemrograman lainnya.

Saat loop

Ini adalah salah satu loop termudah untuk dikerjakan. Sintaksnya cukup sederhana:

Saat melakukan perintah selesai 

Loop sementara di bawah ini mencantumkan semua angka dari 1 hingga 10 saat dieksekusi.

#!/bin/bash # Sederhana sementara loop counter = 1 sementara [$ counter -le 10] do echo $ counter ((counter ++)) selesai 

Mari kita buang loop saat:

Variabel menangkal diinisialisasi ke 1. Dan sementara variabelnya kurang dari atau sama dengan 10, Nilai penghitung akan bertambah sampai kondisinya terpenuhi. Garis echo $ counter mencetak semua angka dari 1 hingga 10.

Sedangkan loop dalam skrip shell

Untuk loop

Seperti sementara lingkaran, A untuk loop digunakan untuk menjalankan kode secara iteratif. SAYA.e. Eksekusi kode ulang sebanyak mungkin yang ditentukan oleh pengguna.

Sintaksnya adalah:

untuk var dalam 1 2 3 4 5 n do command1 command2 selesai 

Itu untuk loop di bawahnya melalui 1 tepat hingga 10 dan memproses nilainya di layar.

Untuk loop dalam skrip shell

Cara yang lebih baik untuk mencapai hal ini adalah dengan mendefinisikan rentang menggunakan kawat gigi keriting ganda seperti yang ditunjukkan alih -alih mengetik semua angka.

#!/bin/bash # Tentukan kisaran dalam loop untuk num di 1 ... 10 do echo $ num selesai 

Parameter posisi bash

Parameter posisi adalah variabel khusus yang dirujuk dalam skrip ketika nilai diteruskan pada shell tetapi tidak dapat ditetapkan. Parameter posisi dijalankan dari $ 0 $ 1 $ 2 $ 3… ke $ 9. Luar $ 9 Nilai, parameter harus dilampirkan dalam kurung keriting e.G $ 10, $ 11… dan seterusnya.

Saat mengeksekusi skrip, parameter posisi pertama yang $ 0 mengambil nama skrip shell. Itu $ 1 Parameter mengambil variabel pertama yang diteruskan di terminal, $ 2 mengambil yang kedua, $ 3 yang ketiga dan seterusnya.

Mari Buat Tes Skrip.SH seperti yang ditunjukkan.

#!/bin/bash echo "Nama skripnya adalah:" $ 0 echo "Nama depan saya adalah:" $ 1 echo "Nama kedua saya adalah:" $ 2 

Selanjutnya, jalankan skrip dan berikan nama pertama dan kedua sebagai argumen:

# tes bash.SH JAMES KIARIE 
Parameter posisi Bash

Dari output, kita dapat melihat bahwa variabel pertama yang dicetak adalah nama skrip shell, dalam hal ini, tes.SH. Setelah itu, nama dicetak sesuai dengan parameter posisi yang ditentukan dalam skrip shell.

Parameter posisi berguna karena membantu Anda menyesuaikan data yang dimasukkan alih -alih secara eksplisit menetapkan nilai ke variabel.

Kode Keluar Perintah Shell

Mari kita mulai dengan menjawab pertanyaan sederhana, apa itu Kode Keluar?

Setiap perintah yang dieksekusi pada shell oleh pengguna atau skrip shell memiliki status keluar. Status keluar adalah bilangan bulat.

Status keluar dari 0 menyiratkan bahwa perintah itu berhasil dijalankan tanpa kesalahan. Apapun antara 1 hingga 255 menunjukkan bahwa perintah gagal atau tidak berhasil dijalankan.

Untuk menemukan status keluar dari suatu perintah, gunakan $? Variabel shell.

Status keluar dari 1 poin ke kesalahan umum atau kesalahan yang tidak diwujudkan seperti mengedit file tanpa izin sudo.

Status keluar dari 2 poin untuk penggunaan yang salah dari perintah atau variabel shell bawaan.

Status keluar 127 menunjuk ke perintah ilegal yang biasanya menghasilkan 'perintah tidak ditemukan'Kesalahan.

Temukan Status Keluar dari Komando

Memproses output perintah shell dalam skrip

Dalam skrip bash, Anda dapat menyimpan output perintah dalam variabel untuk penggunaan di masa mendatang. Ini juga disebut sebagai substitusi perintah shell dan dapat dicapai dengan cara berikut.

variabel = $ (perintah) atau variabel = $ (/path/to/command) atau variabel = $ (argumen perintah 1 argumen 2 ...) 

Misalnya, Anda dapat menyimpan tanggal Perintah dalam variabel yang disebut Hari ini dan hubungi skrip shell untuk mengungkapkan tanggal saat ini.

#!/bin/bash hari ini = $ (tanggal) echo "hari ini $ hari ini" 
Tanggal Cetak Menggunakan Skrip Shell

Mari kita ambil contoh lain. Misalkan Anda ingin menemukan pengguna login yang valid di sistem Linux Anda. Bagaimana Anda melakukannya? Pertama, daftar semua pengguna (baik sistem, proses, dan pengguna login) disimpan di /etc/passwd mengajukan.

Untuk melihat file, Anda harus menggunakan perintah CAT. Namun, untuk mempersempit untuk masuk pengguna, gunakan perintah grep untuk mencari pengguna dengan /bin/bash atribut dan gunakan CUT -C 1-10 perintah seperti yang ditunjukkan untuk menampilkan 10 karakter pertama dari nama.

Kami telah menyimpan Perintah kucing ke LOGIN_USERS variabel.

#!/bin/bash login_users = $ (cat/etc/passwd | grep/bin/bash | cut -c 1-10) echo 'Ini adalah daftar pengguna login: echo $ login_users 
Daftar yang masuk pengguna

Ini mengakhiri tutorial kami tentang membuat skrip shell sederhana. Kami harap Anda menemukan ini berharga.