Cara Menangani Argumen Baris Perintah dalam Skrip Bash

How Handle Command Line Arguments Bash Script



Dalam banyak kasus, skrip bash memerlukan nilai argumen untuk memberikan opsi input ke skrip. Anda dapat menangani argumen baris perintah dalam skrip bash dengan dua cara. Salah satunya dengan menggunakan variabel argumen dan lainnya adalah dengan menggunakan getopt fungsi. Bagaimana Anda dapat menangani argumen baris perintah ditunjukkan dalam tutorial ini.

Menggunakan variabel argumen:

Variabel argumen dimulai dari $0. Nama file skrip utama disimpan dalam $0 yang menerima nilai argumen dari argumen baris perintah. Jika dua argumen dilewatkan dalam baris perintah maka nilai argumen akan diterima dalam variabel $1 dan $2 secara berurutan.







Contoh -1: Mengirim tiga nilai numerik sebagai argumen

Buat file bash dan tambahkan kode berikut. Skrip akan menerima tiga nilai argumen dan disimpan dalam $1, $2, dan $3. Ini akan menghitung jumlah total argumen, mencetak nilai argumen dengan loop dan tanpa loop. Terakhir, cetak jumlah semua nilai argumen.



#!/bin/bash

# Menghitung jumlah total argumen
dibuang 'Total jumlah argumen : $#'

# Membaca nilai argumen secara individual
dibuang 'Nilai argumen pertama: $1'
dibuang 'Nilai argumen kedua : $2'
dibuang 'Nilai argumen ketiga: $3'

# Membaca nilai argumen menggunakan loop
untukargvaldi dalam ' [dilindungi email] '
melakukan
dibuang -n '$argval'
selesai

# Menambahkan nilai argumen
jumlah= $(($1+$2+$3))

#cetak hasilnya
dibuang -Dan ' Hasil penjumlahan =$jumlah'

Jalankan file bash dengan tiga nilai argumen numerik.



$pestacmdline1.shlima puluh 35 limabelas





Contoh -2: Mengambil nama file sebagai argumen

Buat file bash dan tambahkan kode berikut untuk menghitung jumlah total karakter file apa pun. Di sini, nama file akan diteruskan sebagai argumen baris perintah.

#!/bin/bash
nama file=$1
totalchar=``toilet -C $namafile``
dibuang 'Total jumlah karakter adalah$ totalchar'

Jalankan skrip bash dengan nama file sebagai nilai argumen tunggal dan jalankan perintah lain untuk memeriksa jumlah total karakter file itu. Di sini, file employee.txt digunakan sebagai nilai argumen. Jumlah total karakter file employee.txt adalah 204.



$pestacmdline2.sh employee.txt
$toilet -Ckaryawan.txt

Menggunakan fungsi getopts:

Jika Anda ingin menyimpan data dalam database atau file apa pun atau membuat laporan pada format tertentu berdasarkan nilai argumen baris perintah, maka getopt fungsi adalah pilihan terbaik untuk melakukan tugas. Ini adalah fungsi linux bawaan. Jadi, Anda dapat dengan mudah menggunakan fungsi ini di skrip Anda untuk membaca data yang diformat dari baris perintah.

Contoh -1: Membaca argumen dengan fungsi getopts

Buat file bash dan tambahkan skrip berikut untuk memahami penggunaan getopt fungsi. Fungsi 'getopts' digunakan dengan while loop untuk membaca opsi argumen baris perintah dan nilai argumen. Di sini, 4 opsi digunakan yaitu 'aku', 'n', 'm' dan 'Dan' . pernyataan kasus digunakan untuk mencocokkan opsi tertentu dan menyimpan nilai argumen dalam variabel. Terakhir, cetak nilai variabel.

#!/bin/bash
ketika getopt ':dalam diriku:'marah;melakukan
kasus $arg di dalam
Saya) Indo=$OPTARG;;
n) Nama=$OPTARG;;
M) Tanggal pembuatan=$OPTARG;;
Dan) Tanggal kadaluarsa=$OPTARG;;
esac
selesai
dibuang -Dan ' $ID $Nama $Manufacturing_date $Kedaluwarsa_tanggal '

Jalankan file dengan opsi dan nilai argumen berikut. Di sini, p100 adalah nilai opsi -i, 'Kue Panas' adalah nilai opsi -n, '01-01-2018′ adalah nilai opsi -m dan '06-01-2018′ adalah nilai - pilihan.

$pestacmdline3.sh-Sayap001-n 'Kue Panas' -M '01 -01-2018 ' -Dan '06 -01-2018 '

Saat Anda perlu mengirim nilai sederhana dalam skrip maka lebih baik menggunakan variabel argumen. Tetapi jika Anda ingin mengirim data dengan cara yang diformat maka lebih baik menggunakan fungsi getopts untuk mengambil nilai argumen. Untuk informasi lebih lanjut tonton videonya !