Bagaimana Menangani Argumen Baris Perintah di Bash?

Bagaimana Menangani Argumen Baris Perintah Di Bash



Di Linux, kami menggunakan argumen baris perintah sebagai masukan untuk skrip bash. Bash dapat mengambil argumen baris perintah ini secara berurutan dan menguraikannya sebagai opsi. Argumen ini memungkinkan Anda memengaruhi tindakan dan keluaran skrip secara dinamis.

Anda dapat mengonfigurasi argumen ini secara berbeda untuk memengaruhi input dan output. Itu sebabnya menangani argumen baris perintah di bash sangat penting, tetapi banyak pengguna baru perlu mempelajari cara melakukannya. Jadi dalam panduan ini, kami akan menjelaskan berbagai cara menangani argumen baris perintah di bash.







Bagaimana Menangani Argumen Baris Perintah di Bash?

Ada berbagai cara untuk menangani argumen baris perintah di Bash, jadi mari kita lihat untuk mendapatkan informasi singkat:



Fungsi getopt



Fungsi getopt berguna karena menyediakan opsi dan sintaks untuk mendefinisikan dan mem-parsing argumen di bash. Ini adalah fungsi bawaan Linux yang dapat Anda gunakan saat membuat file database atau laporan dalam format tertentu berdasarkan argumen. Fungsi getopt membantu mengurai argumen baris perintah pendek karena ada dua jenis argumen:





  • Argumen Singkat: Ini adalah argumen satu karakter yang diikuti dengan tanda hubung. Misalnya, -a, -l, -h, dll., adalah beberapa contoh argumen tunggal.

  • Argumen Panjang: Ini adalah argumen multi-karakter yang diikuti dengan tanda hubung ganda. Ada berbagai contoh argumen panjang, seperti –all, –list, –help, dll.

Mari kita ambil contoh di mana kita akan menangani argumen baris perintah menggunakan utilitas getopt. Kami telah membuat skrip bash bernama 'getopt.sh' yang berisi informasi berikut:



!/ tempat sampah / pesta

ketika getopts 'A:B:C:D:' rincian; melakukan

kasus ' $detail ' di

SEBUAH )

gema 'Nama Warga adalah $OPTARG ' ;;

B )

gema 'KTP adalah $OPTARG ' ;;

C )

gema 'Tempat lahir adalah $OPTARG ' ;;

D )

gema 'Pekerjaan adalah $OPTARG ' ;;

* )

KELUAR 1 ;;

esac

selesai

menggeser ' $(($ MEMILIH -1) )'



jika [ ! -Dengan $1 ] ; kemudian

gema 'Status Pernikahan $1'

kalau tidak

gema 'Tidak Ada Entri'

KELUAR 1

menjadi



jika [ ! -Dengan $2 ] ; kemudian

gema 'Anggota Keluarga $2'

menjadi

Sekarang mari jalankan skrip dengan argumen yang diperlukan di input:

Seperti yang Anda lihat pada gambar di atas, kami menjalankan skrip hanya dengan fungsi getopt dan kemudian menambahkan argumen normal untuk mendapatkan hasil yang lengkap.

Menggunakan Bendera

Bendera hanyalah karakter tunggal yang diawali dengan tanda hubung (-). Saat kami meneruskan argumen menggunakan fungsi getopt, kami menggunakan flag. -a, -b, -c adalah beberapa contoh flag. Misalnya, skrip memerlukan nama warga negara, KTP, tempat, usia, dan pekerjaan. Oleh karena itu, kami menggunakan bendera j, k, l, m, n, untuk menentukan nama warga negara, ID, tempat, umur, dan pekerjaan secara bersamaan:

#!/bin/bash

Ketika getopts j:k:l:m:n: flag_info

melakukan

kasus ' ${flag_info} ' di
< ol >
< itu > j ) citizenname = ${OPTARG} ;; itu >
< itu > k ) kartu Tanda Penduduk = ${OPTARG} ;; itu >
< itu > l ) tempat = ${OPTARG} ;; itu >
< itu > m ) usia = ${OPTARG} ;; itu >
< itu > n ) pekerjaan = ${OPTARG} ;; itu >
ol >
esac

selesai

gema 'Ini detail yang dimasukkan:'

gema 'Nama Warga: $namawarga ' ;

gema 'Kartu Tanda Penduduk: $citizenid ' ;

gema 'Tempat: $tempat ' ;

gema 'Usia: $usia ' ;

gema 'Pekerjaan: $pekerjaan ' ;

Script akan memberikan hasil berikut di terminal:

. /< naskah > .SH -j Danny -k 476 -l Toronto -m 25 -n Pengarang

Menggunakan [email dilindungi] Dengan Loop

“ [email dilindungi] ” variabel tidak lain adalah array dari semua argumen input. Kami dapat melewati sejumlah input menggunakan ' [email dilindungi] ' variabel. Anda dapat menggunakan variabel ini sebagai loop untuk beralih melalui argumen. “ [email dilindungi] ” variabel sangat berguna saat itu; Anda tidak mengetahui ukuran input dan tidak dapat menerima argumen posisi. Oleh karena itu, Anda dapat menggunakan ' [email dilindungi] ”  daripada mendefinisikan fungsi getopt berulang kali. Berikut adalah contoh penggunaan loop dan [email dilindungi] bersama dalam naskah:

#!/bin/bash

pada satu = ( “$ @ )



jika [ $# -gt 1 ]

kemudian



menambahkan =$ ( ( ${num[0]} + ${num[1]} ) )

gema 'Penjumlahan semua angka adalah: $tambahkan '



pengurangan =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )

gema 'Pengurangan bilangan adalah: $pengurangan '



berkembang biak =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )

gema 'Perkalian bilangan adalah: $ kalikan '



divisi1 =$ ( ( ${num[0]} / ${num[1]} ) )

gema 'Pembagian dari ${num[0]} dan ${num[1]} adalah: $divisi1 '



divisi2 =$ ( ( ${num[1]} / ${num[2]} ) )

gema 'Divisi dari ${num[1]} dan ${num[2]} adalah: $divisi2 '



divisi3 =$ ( ( ${num[0]} / ${num[2]} ) )

gema 'Divisi dari ${num[0]} dan ${num[2]} adalah: $divisi2 '



menjadi

Skrip di atas melakukan perhitungan aritmatika yang berbeda berdasarkan argumen baris perintah. Misalnya, kami memasukkan 50, 35, dan 15 sebagai input:

Menggunakan Parameter Posisi

Anda dapat mengakses parameter posisi saat mereka mengakses $1 terlebih dahulu, lalu $2, dan seterusnya. Misalnya, mari buat skrip yang membaca nama sebagai argumen pertama, lalu kota sebagai argumen kedua. Namun, jika Anda melewati kota terlebih dahulu dan kemudian namanya, maka dianggap sebagai kota dan sebaliknya. Mari selami lebih dalam skrip berikut untuk memahami konsep ini:

#!/bin/bash

gema 'Ini rincian yang dimasukkan'

gema 'nama $1'

gema 'kota $2'

Anda perlu menambahkan nama dan kota pada saat menjalankan skrip di terminal:

Membungkus

Ini semua yang perlu Anda ketahui tentang metode untuk menangani argumen baris perintah di bash. Kami telah menjelaskan berbagai pendekatan yang dapat Anda coba dengan contoh yang sesuai. Ada berbagai perintah jika Anda ingin menambahkan argumen dalam skrip. Jadi pastikan Anda mengunjungi Linuxhint untuk mempelajari lebih lanjut tentang mereka.