GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan dan di Bash while loop

[] operator di bash adalah gula sintaksis untuk panggilan ke test , yang didokumentasikan dalam man test . "atau" dinyatakan dengan infiks -o , tetapi Anda memerlukan "dan":

while [ $guess != 5 -a $guess != 10 ]; do

Ada 2 cara yang benar dan portabel untuk mencapai apa yang Anda inginkan.
shell lama yang bagus sintaks:

while [ "$guess" != 5 ] && [ "$guess" != 10 ]; do

Dan bash sintaks (seperti yang Anda tentukan):

while [[ "$guess" != 5 && "$guess" != 10 ]]; do

Cara portabel dan kuat adalah dengan menggunakan case pernyataan sebagai gantinya. Jika Anda tidak terbiasa, mungkin perlu beberapa kali melihat hanya untuk memahami sintaksisnya.

while true; do
    case $guess in 5 | 10) break ;; esac
    echo Your answer is $guess. This is incorrect. Please try again.
    echo -n "What is your guess? "
    read guess  # not $guess
done

Saya menggunakan while true tetapi sebenarnya Anda bisa menggunakan case pernyataan di sana secara langsung. Namun, sulit untuk membaca dan memelihara.

while case $guess in 5 | 10) false;; *) true;; esac; do ...

Linux
  1. Cara menulis loop di Bash

  2. Menjelajahi Podman RESTful API menggunakan Python dan Bash

  3. Contoh Bash For Loop dan While Loop

  1. Bash Seri Pemula #8:Loop di Bash

  2. Menjaga Anda di Loop – Contoh Bash Untuk, Sementara, Sampai Loop

  3. Pesta Linux. untuk loop dan fungsi, untuk menambahkan angka

  1. Panduan Bash For Loop dan Contohnya

  2. Menggunakan Bash untuk otomatisasi

  3. Skrip Linux:3 cara untuk while loop di Bash