Periksa sama ada pemboleh ubah mengandungi nombor dalam bash
- 2221
- 223
- Daryl Wilderman
Nombor adalah gabungan 0-9 digit-pembolehubah bash menyimpan semua nilai dalam bentuk rentetan. Walaupun nilai yang disimpan dalam format rentetan, kita boleh melaksanakan semua operasi aritmetik jika nilai yang disimpan adalah nombor yang sah. Sebagai amalan terbaik, kita harus mengesahkan nilai pembolehubah sebelum melaksanakan operasi aritmetik.
Nombor boleh menjadi nombor integer, nombor titik terapung, atau nombor positif/negatif yang awalan dengan simbol "+ dan -". Dalam tutorial ini, kami telah membincangkan beberapa kaedah untuk mengesahkan bahawa pembolehubah hanya mengandungi digit, bilangan bulat, dan nilai dua atau terapung, bukan abjad.
Menggunakan pengendali tilde (= ~) yang sama
Ekspresi biasa adalah cara yang cepat dan mudah untuk memeriksa jika nilai adalah nombor. Dalam skrip bash, tilde yang sama (= ~)
Pengendali digunakan untuk membandingkan nilai dengan ungkapan biasa. Yang boleh digunakan dengan bash jika pernyataan:
12345678910 | #!/usr/bin/env bash# shell skrip untuk memeriksa sama ada nombor input adalah integer baca -p "Sila masukkan nombor:" var if [[$ var = ~ ^[0-9]+$]]; kemudian echo "$ var adalah nombor" else echo "$ var bukan nombor" fi |
Tulis coretan di atas dalam skrip shell dan laksanakan. Masukkan kali pertama nombor nilai.
Larian Pertama Sila masukkan nombor: 12 12 adalah nombor
Sekali lagi jalankan skrip dengan beberapa huruf dan periksa output:
Larian Kedua Sila masukkan nombor: 1a2b 12a bukan nombor
Periksa sama ada nombor titik terapung
Nombor titik terapung adalah jenis integer yang mewakili nombor yang boleh memegang bahagian pecahan (juga dikenali sebagai terapung). Seperti namanya, nombor -nombor ini boleh mengambil nilai yang berbeza di tempat dan masa yang berbeza. Nombor titik terapung biasanya digunakan untuk mewakili nombor dengan titik perpuluhan di dalamnya. Contohnya, 1.0, 0.6, dan 10.26 semua nombor terapung.
Tulis skrip shell baru yang menganggap nombor titik terapung sebagai nombor yang sah.
#!/usr/bin/env bash # shell skrip untuk memeriksa sama ada nombor input adalah nombor # yang boleh menjadi integer atau nombor titik terapung baca -p "Sila masukkan nombor:" var if [[$ var = ~ ^[0 -9]+([.] [0-9]+)?$]]; kemudian echo "$ var adalah nombor" else echo "$ var bukan nombor" fi1234567891011 | #!/usr/bin/env bash# shell skrip untuk memeriksa sama ada nombor input adalah nombor# yang boleh menjadi integer atau nombor titik terapung baca -p "Sila masukkan nombor:" var if [[$ var = ~ ^[0 -9]+([.] [0-9]+)?$]]; kemudian echo "$ var adalah nombor" else echo "$ var bukan nombor" fi |
Jalankan skrip di atas dengan memasukkan beberapa nombor titik terapung. Skrip ini akan mempertimbangkan semua nombor titik terapung sebagai nombor yang sah.
Larian Pertama Sila masukkan nombor: 12.10 12.10 adalah nombor
Menggunakan pernyataan kes suis
Beberapa skrip yang diperlukan untuk mempunyai penyataan kes. Yang serupa dengan pernyataan suis dalam bahasa pengaturcaraan lain. Kami juga boleh menggunakan ungkapan biasa dalam pilihan penyataan kes dan mengesahkan jika input yang diberikan adalah nombor.
#!/usr/bin/env bash # shell skrip untuk memeriksa sama ada nombor input adalah nombor # menggunakan pernyataan kes suis baca -p "Sila masukkan nombor:" var case $ varin "|*[[!0-9]*) echo "$ var bukan nombor" ;; *) echo "$ var adalah nombor" ;; ESAC12345678910 | #!/usr/bin/env bash# shell skrip untuk memeriksa sama ada nombor input adalah nombor# menggunakan pernyataan kes suis baca -p "Sila masukkan nombor:" var case $ varin "|*[[!0-9]*) echo "$ var bukan nombor" ;; *) echo "$ var adalah nombor" ;; ESAC |
Jalankan skrip di atas beberapa kali dengan input yang berbeza dan lihat hasilnya:
Larian Pertama Sila masukkan nombor: 12 12 adalah nombor
Periksa sama ada nombor mengandungi +/-
Tanda
Dalam kaedah di atas, kami telah memeriksa nilai integer yang mengandungi 0-9 digit sahaja, nombor titik terapung yang juga mengandungi sebahagian kecil daripada nilai yang dikenali sebagai nombor perpuluhan. Dalam beberapa kes, bilangan juga boleh positif atau negatif. Mana -mana nombor tanpa awalan atau dengan +
adalah nombor positif. Nombor dengan -
awalan adalah nombor negatif.
Kemas kini ungkapan biasa, untuk mempertimbangkan nombor yang mempunyai +/-
menyanyi sebelum itu.
1234567891011 | #!/usr/bin/env bash# shell skrip untuk memeriksa sama ada nombor input adalah nombor# dan boleh menjadi nombor positif atau negatif baca -p "Sila masukkan nombor:" var if [[$ var = ~ ^[+ - ]?[0-9]+$]]; kemudian echo "$ var adalah nombor" else echo "$ var bukan nombor" fi |
Jalankan skrip di atas dengan input yang berbeza-2 dan periksa hasilnya.
Larian Pertama Sila masukkan nombor: 12 12 adalah nombor kedua yang kedua sila masukkan nombor: -12 -12 adalah nombor ketiga yang dijalankan sila masukkan nombor: +12 +12 adalah nombor
Periksa sama ada nombor adalah postive atau negatif
Semasa melakukan operasi aritmetik dalam skrip bash, anda harus mengesahkan nilai input. Skrip shell di bawah akan membantu anda untuk memeriksa sama ada nombor input adalah nombor positif atau nombor negatif.
#!/usr/bin/env bash # skrip shell untuk memeriksa sama ada nombor input # adalah nombor positif atau nombor negatif baca -p "Sila masukkan nombor:" var ## periksa jika input adalah nombor yang sah jika [[$ var var = ~ ^[+,-]?[0-9]+$]]; maka ## semak jika input adalah nombor positif atau negatif jika [[$ var = ~ ^[-] [0-9]+$]]; Kemudian echo "$ var adalah nombor negatif" else echo "$ var adalah nombor positif" fi else echo "$ var bukan nombor" fi1234567891011121314151617 | #!/usr/bin/env bash# shell skrip untuk memeriksa sama ada nombor input# adalah nombor positif atau nombor negatif baca -p "Sila masukkan nombor:" var ## periksa jika input adalah nombor yang sah [[$ var = ~ ^[+,-]?[0-9]+$]]; maka ## semak jika input adalah nombor positif atau negatif jika [[$ var = ~ ^[-] [0-9]+$]]; Kemudian echo "$ var adalah nombor negatif" else echo "$ var adalah nombor positif" fielse echo "$ var bukan nombor" fi |
Jalankan skrip di atas dengan nombor positif dan negatif. Kemudian periksa hasilnya.
Larian Pertama Sila masukkan nombor: 12 12 adalah nombor kedua yang positif
Kesimpulan
Nombor adalah koleksi digit dari 0 hingga 9. Sebarang nombor boleh menjadi nombor positif atau negatif. Nombor boleh menjadi nombor integer atau terapung. Tutorial ini membantu anda menyemak sama ada nilai yang diberikan adalah nombor atau tidak dalam skrip bash.
- « Cari kuasa Docker memasang dan menggunakan Docker di Ubuntu dan Debian!
- Membuat Direktori dalam HDFS dan Salin Fail (Hadoop) »