Cara meneruskan argumen baris perintah dalam skrip shell
- 1497
- 401
- Dwayne Hackett
Skrip bash adalah file teks sederhana yang berisi kumpulan perintah. Bash Script dapat membantu dengan tugas administratif, otomatisasi tugas, dan melaksanakan beberapa perintah. Mereka digunakan untuk mengotomatiskan tugas/tindakan berulang.
Kita dapat meletakkan semua perintah yang berjalan di terminal ke dalam skrip bash dan sebaliknya. Skrip bash termasuk konsep pemrograman imperatif seperti loop, kondisional, dan fungsi.
Argumen baris perintah adalah parameter yang ditentukan dengan nama file skrip bash pada saat eksekusi. Argumen baris perintah memungkinkan skrip untuk melakukan tindakan dinamis berdasarkan input:
Cara meneruskan argumen ke skrip shell
Untuk meneruskan parameter ke skrip bash cukup tuliskan setelah nama skrip bash di terminal:
./-script saya.argumen sh
Cara meneruskan beberapa argumen ke skrip shell
Anda juga dapat menentukan beberapa argumen yang dipisahkan oleh ruang bersama dengan nama file skrip bash:
./-script saya.sh arg_1 arg_2 arg_3… arg_n
Kita dapat menggunakan variabel yang telah ditentukan untuk mengingat argumen ini dalam skrip bash. Argumen pertama dapat diingat oleh $ 1
, yang kedua oleh $ 2
, dan seterusnya. Variabel yang telah ditentukan sebelumnya "$ 0"
mengacu pada naskah bash itu sendiri. Daftar beberapa variabel penting yang telah ditentukan sebelumnya diberikan di bawah ini:
[Email dilindungi]
: Nilai semua argumen$#
: Jumlah total argumen$$
: Proses ID shell saat ini
Sekarang kami akan menggunakan file bash bernama Hewan.SH sebagai contoh.
#!/bin/bash gema "hewan di selungkup pertama adalah: $ 1" gema "hewan di kandang kedua adalah: $ 2" gema "hewan di kandang ketiga adalah: $ 3" gema "Total jumlah hewan di kebun binatang adalah: $#"echo" nama semua hewan adalah: $@"1234567 | #!/bin/bash gema "hewan di selungkup pertama adalah: $ 1" gema "hewan di kandang kedua adalah: $ 2" gema "hewan di kandang ketiga adalah: $ 3" gema "Jumlah total hewan di kebun binatang adalah: $#"echo" nama semua hewan adalah: [email dilindungi] " |
Sekarang kita akan menjalankan skrip ini di terminal:
Cara lulus argumen yang berisi ruang
Jika suatu argumen terdiri dari banyak kata yang dipisahkan oleh ruang maka kita perlu melampirkannya dalam satu kutipan untuk meneruskannya sebagai argumen tunggal:
#!/bin/bash echo "Nama saya: $ 1"123 | #!/bin/bash echo "Nama saya: $ 1" |
Cara Lulus Argumen dengan Karakter Khusus
Kami juga dapat melewati karakter khusus sebagai argumen. Tetapi mereka perlu ditulis dengan backslash di depan mereka.
#!/bin/bash echo "Berapa banyak uang yang Anda belanjakan hari ini: $ 1"123 | #!/bin/bash echo "Berapa banyak uang yang Anda belanjakan hari ini: $ 1" |
Lewat argumen menggunakan bendera dan opsi dalam skrip shell
Menggunakan bendera dan opsi adalah cara umum lainnya untuk memberikan input ke skrip bash. Opsi selalu diikuti oleh nilai sementara bendera tidak diikuti oleh nilai apa pun.
Pertama, kami akan membuat skrip bash baru yang mengambil dua argumen (opsi) berbeda i.e. -n/-nama
untuk nama, dan -I/-ID
untuk nomor identifikasi.
1234567891011121314151617181920 | #!/bin/bash args = $ (getOpt -a --Options n: i: - -long "name :, ID:" -"[email dilindungi]") eval set -"$ args" walaupun true; do case "$ 1" di -n |--name) name = "$ 2" echo "name: $ name" shift 2 ;; -i | --id) identifikasi = "$ 2" echo "id: $ identifikasi" shift 2 ;; --) merusak;; Esacdone |
Dalam kode yang diberikan di atas terlebih dahulu, kami membuat variabel yang menyimpan semua nama pendek dan panjang dari opsi kami. Di baris kedua, kami mengevaluasi Args
variabel. Kemudian kami menggunakan loop sementara untuk menetapkan blok kode untuk setiap opsi.
Dalam kode di atas shift digunakan untuk melewatkan nilai variabel. Digit yang mengikuti shift menentukan berapa banyak variabel yang dilewati.
Demikian pula
Sekarang kami akan menambahkan -v
Bendera yang mencetak menu Verbose:
1234567891011121314151617181920212223 | #!/bin/bash args = $ (getOpt -a --Options n: i: v - -long "name :, id:, verbose" -"[email dilindungi]") set eval -"$ args" walaupun benar ; do case "$ 1" di -n |--name) name = "$ 2" echo "name: $ name" shift 2 ;; -i | --id) identifikasi = "$ 2" echo "id: $ identifikasi" shift 2 ;; -v | --verbose) echo "Silakan gunakan -n/-nama atau -i/-ID untuk meneruskan nama atau nomor identifikasi" break ;; --) merusak;; Esacdone |
Bendera tidak diikuti oleh usus besar ketika mereka didefinisikan dalam naskah bash karena mereka tidak bertengkar dengan mereka tidak seperti opsi e.G. itu -N
Opsi mengambil nama dengan itu seperti Rahul.
Kesimpulan
Seorang operator manusia yang melakukan tugas berulang secara manual sangat tidak efisien. Jadi tugas -tugas seperti itu harus otomatis. Skrip dapat membantu kita melakukan itu.
Dalam penulisan ini, kami telah belajar cara meneruskan argumen melalui baris perintah ke skrip bash. Argumen baris perintah membantu kami menulis skrip dinamis yang melakukan fungsi berbeda tergantung pada input.
Selain itu, kami juga membahas berbagai jenis argumen. Kami juga sedikit menyentuh variabel yang telah ditentukan sebelumnya.
- « Cara mencadangkan dan mengembalikan database PostgreSQL (5 tips)
- Apa itu Apache Prefork, pekerja dan acara MPM (modul multi-pemrosesan) »