Bagaimana cara Melewati Argumen dalam Skrip Bash?

How Do I Pass Argument Bash Script



Sebagian besar Pengguna Linux Mint 20 menemukan diri mereka terjebak ketika menyampaikan argumen dalam skrip bash. Anda dapat meneruskan argumen ke skrip bash mana pun saat dijalankan. Ada beberapa cara sederhana dan berguna untuk menyampaikan argumen dalam skrip bash. Dalam panduan artikel ini, kami akan memberi tahu Anda tentang beberapa cara yang sangat mudah untuk meneruskan dan menggunakan argumen dalam skrip bash Anda.

Melewati Argumen Menggunakan Variabel Default:

Buat file baru dengan nama apa pun menggunakan perintah sentuh, mis., file.sh.







$menyentuhnama file



Buka file yang baru dibuat ini dan tambahkan beberapa skrip bash ke dalamnya. Saya telah menambahkan beberapa variabel default, mis. $1, $2, dan $3 akibatnya. Argumen apa pun yang akan dilewatkan melalui terminal akan disimpan dalam variabel yang dinyatakan.







Anda harus menjalankan file ini menggunakan perintah ./ diikuti dengan beberapa argumen. Seperti yang Anda lihat pada gambar bahwa ketika saya melewati argumen, terjadi kesalahan: Izin ditolak. Ini karena file ini tidak memiliki hak eksekusi.

$./argumen nama file1 argumen2 argumen

Jadi untuk memberikan hak eksekusi ke file ini, gunakan perintah sudo chmod untuk melakukannya.



$sudo chmod+x nama file

Sekarang, jalankan lagi file menggunakan perintah yang sama di atas. Kali ini saya telah memberikan argumen yang berbeda. Anda akan melihat argumen yang baru diteruskan disimpan dalam variabel default.

Melewati Nama Skrip Shell sebagai Argumen:

Sekarang, menggunakan file lama yang sama file.sh dengan sedikit perubahan pada variabel defaultnya. Anda harus menambahkan variabel $0 dalam skrip seperti yang ditunjukkan.

Saat menjalankan perintah skrip ./ shell yang sama, nama skrip shell Anda, mis. ./filename akan disimpan dalam variabel $0 sebagai argumen.

Melewati Argumen sebagai Array ke Variabel:

Dimulai dengan file yang sama file.sh, Anda harus menambahkan beberapa baris tambahan di skrip lama. Mendeklarasikan variabel bernama array. Tambahkan variabel default [dilindungi email] yang akan menyimpan argumen yang dimasukkan oleh pengguna sebagai array. Argumen ini akan diuraikan ke array variabel. Baris terakhir akan menampilkan semua argumen dari array variabel yang diurutkan berdasarkan nomor indeks.

Jalankan skrip ./ shell. Anda akan melihat bahwa itu akan menampilkan argumen atau nilai yang disimpan sebagai array di [email protected] yang diurai ke array variabel tetapi bukan nama skrip shell dalam pernyataan gema kedua. Anda akan memiliki output berikut.

$./argumen nama file1 argumen2 argumen

Gunakan file yang sama dengan skrip yang sama. Hapus saja ${array[3]} dari baris terakhir seperti yang terlihat pada gambar.

Setelah menjalankan perintah ./, Anda akan melihat output yang sama seperti yang Anda dapatkan pada contoh di atas tanpa perubahan.

Anda juga bisa mendapatkan hasil yang sama dengan mengganti baris terakhir skrip bash dengan satu kata. Anda hanya perlu menambahkan [email protected] dalam pernyataan echo, dan itu akan menampilkan argumen yang ada dalam array variabel ini.

Jadi jalankan perintah ./ lagi, Anda akan mendapatkan hasil yang sama.

Periksa Jumlah Total Argumen yang Lulus:

Sebaliknya, jika Anda ingin mengetahui jumlah total argumen yang diberikan oleh pengguna, Anda juga dapat melakukannya. Untuk tujuan ini, Anda hanya perlu mengganti [email protected] dengan $# di echo.

Sekali lagi jalankan perintah ./, Anda sekarang akan melihat seluruh figur argumen yang diteruskan ke skrip. Dalam kasus kami, 3 argumen dilewatkan sebagai nilai.

Buat Baris demi Baris Output Argumen:

Buat file test.sh baru di direktori home. Tambahkan skrip bash seperti yang ditunjukkan.

Sekarang jalankan perintah lama yang sama dengan argumen yang berbeda. Pertama, Anda akan melihat kesalahan: Izin ditolak.

Anda harus menjalankan perintah chmod untuk memberikan hak istimewa sudo file ini. Setelah itu, jalankan kembali perintah skrip ./ shell. Dan Anda akan mendapatkan output argumen yang diurutkan baris demi baris.

Batasi Variabel melalui Nomor Indeks Argumen:

Jika Anda ingin membatasi variabel menggunakan nomor indeksnya, Anda dapat melakukannya dengan sangat mudah. Tambahkan kurung kurawal setelah tanda $ dan tambahkan nomor indeks argumen yang ingin Anda tampilkan sebelum argumen lainnya.

Jika argumen yang diberikan oleh pengguna kurang dari nomor indeks yang disediakan dalam variabel batas, maka Anda akan mendapatkan nilai argumen kosong. Sebagai contoh, saya telah memberikan 4 argumen, tetapi saya telah memberikan nilai argumen 05 untuk ditampilkan. Dalam situasi ini, variabel akan ditampilkan kosong karena argumen kelima belum diteruskan.

Tetapi ketika Anda melewati jumlah argumen yang sama atau lebih dalam perintah, Anda akan mendapatkan nilai yang ditampilkan dalam hasil seperti yang ditunjukkan.

Memeriksa Argumen Nilai Tertentu:

Buat file baru dengan nama Check.sh di direktori home Anda. Tambahkan skrip bash yang sama seperti yang ditunjukkan pada gambar di bawah ini. Dalam skrip ini, kami memiliki variabel var untuk menyimpan nilai argumen yang diteruskan oleh pengguna. Kemudian kita memiliki pernyataan if, yang akan memeriksa nilai argumen untuk dicocokkan atau tidak. Jika nilai argumen cocok dengan nilai yang diberikan dalam tanda kurung, maka pernyataan gema pertama akan dieksekusi. Jika nilainya tidak cocok, pernyataan gema kedua akan dieksekusi.

Ketika kita menjalankan perintah skrip shell, itu akan menimbulkan kesalahan. Dengan menggunakan perintah chmod, kita dapat memperbaiki kesalahan ini.

Setelah itu, jalankan skrip shell untuk file tertentu dengan beberapa nilai argumen. Dalam kasus kami, kami telah menyediakan Aqsa sebagai nilai argumen, yang sama dengan nilai yang ditampilkan dalam tanda kurung. Jadi skrip bash akan mengeksekusi pernyataan gema pertama seperti yang ditunjukkan.

Di sisi lain, jika Anda memberikan nilai argumen yang berbeda dalam skrip shell, itu akan menampilkan pernyataan gema lainnya. Di sini, saya telah menambahkan Rimsha sebagai nilai argumen, yang berbeda dari nilai yang diberikan dalam pernyataan if. Jadi skrip bash akan mengeksekusi pernyataan gema kedua.

Kesimpulan:

Saya harap panduan ini cukup membantu Anda untuk memiliki pegangan yang kuat tentang cara meneruskan argumen ke variabel default, meneruskan nilai argumen sebagai array ke variabel, mendapatkan jumlah total argumen yang diteruskan, baris demi baris output argumen, batasi argumen output menggunakan nomor indeks, memeriksa argumen nilai tertentu dan banyak lagi.