Cara Mengendalikan Argumen Baris Perintah dalam Skrip Bash

How Handle Command Line Arguments Bash Script



Dalam banyak kes, skrip bash memerlukan nilai argumen untuk memberikan pilihan input ke skrip. Anda boleh menangani argumen baris perintah dalam skrip bash dengan dua cara. Salah satunya adalah dengan menggunakan pemboleh ubah hujah dan yang lain adalah dengan menggunakan getopts fungsi. Cara anda menangani argumen baris perintah ditunjukkan dalam tutorial ini.

Menggunakan pemboleh ubah argumen:

Pemboleh ubah hujah bermula dari $ 0. Nama fail skrip utama disimpan dalam $ 0 yang menerima nilai argumen dari argumen baris perintah. Sekiranya dua argumen dilewatkan dalam baris perintah maka nilai argumen akan diterima dalam pemboleh ubah $ 1 dan $ 2 secara berurutan.







Contoh -1: Menghantar tiga nilai angka sebagai argumen

Buat fail bash dan tambahkan kod berikut. Skrip akan menerima tiga nilai argumen dan disimpan dalam $ 1, $ 2 dan $ 3. Ia akan mengira jumlah argumen, mencetak nilai argumen dengan gelung dan tanpa gelung. Terakhir, cetak jumlah semua nilai argumen.



#! / bin / bash

# Menghitung jumlah hujah
membuang 'Jumlah argumen: $ #'

# Membaca nilai argumen secara individu
membuang 'Nilai argumen pertama: $ 1'
membuang 'Nilai argumen kedua: $ 2'
membuang 'Nilai argumen ketiga: $ 3'

# Membaca nilai argumen menggunakan gelung
untukperbalahandalam '[dilindungi e-mel]'
buat
membuang -n '$ argval'
selesai

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

# mencetak hasilnya
membuang -Dan ' nHasil jumlah =jumlah $'

Jalankan fail bash dengan tiga nilai argumen berangka.



$bashcmdline1.shlima puluh 35 lima belas





Contoh -2: Mengambil nama fail sebagai hujah

Buat fail bash dan tambahkan kod berikut untuk mengira jumlah watak setiap fail. Di sini, nama fail akan diteruskan sebagai argumen baris perintah.

#! / bin / bash
nama fail=$ 1
jumlah keseluruhan='wc -c $ nama fail'
membuang 'Jumlah watak adalah$ jumlah keseluruhan'

Jalankan skrip bash dengan nama fail sebagai nilai argumen tunggal dan jalankan perintah lain untuk memeriksa jumlah watak fail tersebut. Di sini, fail karyawan.txt digunakan sebagai nilai argumen. Jumlah watak fail pekerja.txt ialah 204.



$bashcmdline2.sh pegawai.txt
$wc -cpekerja.txt

Menggunakan fungsi getopts:

Sekiranya anda ingin menyimpan data dalam pangkalan data atau fail apa pun atau membuat laporan mengenai format tertentu berdasarkan nilai argumen baris perintah maka getopts fungsi adalah pilihan terbaik untuk melakukan tugas. Ia adalah fungsi linux terbina dalam. Jadi, anda boleh menggunakan fungsi ini dengan mudah dalam skrip anda untuk membaca data berformat dari baris perintah.

Contoh -1: Membaca hujah dengan fungsi getopts

Buat fail bash dan tambahkan skrip berikut untuk memahami penggunaan getopts fungsi. Fungsi 'getopts' digunakan dengan while loop untuk membaca pilihan argumen baris perintah dan nilai argumen. Di sini, 4 pilihan digunakan iaitu 'dalam m' dan 'Dan' . pernyataan kes digunakan untuk memadankan pilihan tertentu dan menyimpan nilai argumen dalam pemboleh ubah. Akhirnya, cetak nilai pemboleh ubah.

#! / bin / bash
sementara getopts ':dalam saya:'marah;buat
kes $ arg dalam
i) ID=$ OPTARG;;
n) Nama=$ OPTARG;;
m) Tarikh_kilang=$ OPTARG;;
Dan) Tarikh luput=$ OPTARG;;
esac
selesai
membuang -Dan ' n$ ID $ Nama $ Manufacturing_date $ Tamat_ tarikh n'

Jalankan fail dengan pilihan dan nilai argumen berikut. Di sini, p100 adalah nilai pilihan -i, 'Kek Panas' adalah nilai pilihan -n, '01 -01-2018 ′ adalah nilai pilihan -m dan '06 -01-2018 ′ adalah nilai - pilihan e.

$bashcmdline3.sh-ip001-n 'Kek panas' -m '01 -01-2018 ' -Dan '06 -01-2018 '

Apabila anda perlu mengirim nilai sederhana dalam skrip maka lebih baik menggunakan pemboleh ubah argumen. Tetapi jika anda ingin mengirim data dengan format, maka lebih baik menggunakan fungsi getopts untuk mengambil nilai argumen. Untuk maklumat lebih lanjut, tonton video itu !