GNU/Linux >> Belajar Linux >  >> Linux

Pastikan setidaknya ada dua argumen yang diberikan dalam skrip bash

Gunakan $# variabel khusus. Nilainya adalah jumlah argumen. Jadi jika Anda memiliki skrip yang hanya berisi:

echo $#

dan jalankan seperti ini:

thatscript foo bar baz quux

Ini akan mencetak 4.

Dalam kasus Anda, Anda mungkin ingin melakukan sesuatu seperti:

if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi

Mengikuti persyaratan dari pertanyaan bahwa argumen harus berisi "setidaknya 2 hal", saya pikir mungkin lebih akurat untuk memeriksa:

if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

Menggunakan ekspansi aritmatika (( )) akan mencegah ini mengenai exit 1 untuk nilai apa pun yang tidak sama dengan 2.

Jika Anda menggunakan if [ $# -ne 2 ]; itu akan memicu kondisional untuk sejumlah argumen selain 2.

Sunting:Sepertinya jawaban yang diterima telah diperbarui untuk menyertakan contoh yang setara (dan lebih portabel?) dari ini.


Linux
  1. Uji Apakah Ada File Yang Cocok Dengan Pola Untuk Mengeksekusi Skrip?

  2. Periksa Berapa Lama Skrip Bash Dijalankan Dengan Perintah Waktu

  3. Bagaimana cara memeriksa Modul PHP dan Apache yang Terinstal di Linux?

  1. Apakah ada cara untuk memeriksa apakah ada tautan simbolik yang mengarah ke direktori?

  2. Memahami bagaimana input dikirim ke pipa di Bash

  3. Skrip Bash untuk memeriksa apakah situs HTTPS publik aktif

  1. Menambahkan argumen dan opsi ke skrip Bash Anda

  2. Lewati Argumen Baris Perintah ke Skrip Bash?

  3. Ada dua MOTD yang ditampilkan saat saya masuk ke server saya menggunakan SSH