<Sebelum | Contents [show] | Seterusnya>
Memecah Keluar Dari Gelung
bash menyediakan dua arahan terbina yang boleh digunakan untuk mengawal aliran program di dalam gelung. Perintah break dengan serta-merta menamatkan gelung, dan kawalan program diteruskan dengan penyataan seterusnya mengikuti gelung. Arahan continue menyebabkan baki gelung dilangkau, dan kawalan program diteruskan dengan lelaran gelung seterusnya. Di sini kita melihat versi program menu sementara yang menggabungkan kedua-dua break dan continue:
#! / Bin / Bash
# while-menu2: program maklumat sistem dipacu menu DELAY=3 # Bilangan saat untuk memaparkan keputusan
manakala benar; buat
jelas
kucing <<- _EOF_
Sila Pilih:
1. Paparan Maklumat Sistem
2. Paparkan Ruang Cakera
3. Paparkan Penggunaan Ruang Rumah
0. Berhenti
_EOF_
baca -p "Masukkan pilihan [0-3] > "
jika [[ $REPLY =~ ^[0-3]$ ]]; maka jika [[ $REPLY == 1 ]]; kemudian
echo "Nama hos: $HOSTNAME" masa hidup
tidur $DELAY
terus
fi
jika [[ $REPLY == 2 ]]; kemudian df -h
tidur $DELAY
terus
fi
jika [[ $REPLY == 3 ]]; kemudian
jika [[ $(id -u) -eq 0 ]]; kemudian
echo "Penggunaan Ruang Rumah (Semua Pengguna)" du -sh /home/*
lagi
#! / Bin / Bash
# while-menu2: program maklumat sistem dipacu menu DELAY=3 # Bilangan saat untuk memaparkan keputusan
manakala benar; buat
jelas
kucing <<- _EOF_
Sila Pilih:
1. Paparan Maklumat Sistem
2. Paparkan Ruang Cakera
3. Paparkan Penggunaan Ruang Rumah
0. Berhenti
_EOF_
baca -p "Masukkan pilihan [0-3] > "
jika [[ $REPLY =~ ^[0-3]$ ]]; maka jika [[ $REPLY == 1 ]]; kemudian
echo "Nama hos: $HOSTNAME" masa hidup
tidur $DELAY
terus
fi
jika [[ $REPLY == 2 ]]; kemudian df -h
tidur $DELAY
terus
fi
jika [[ $REPLY == 3 ]]; kemudian
jika [[ $(id -u) -eq 0 ]]; kemudian
echo "Penggunaan Ruang Rumah (Semua Pengguna)" du -sh /home/*
lagi
echo "Penggunaan Ruang Rumah ($USER)" du -sh $HOME
fi
tidur $DELAY
terus
fi
jika [[ $REPLY == 0 ]]; kemudian pecah
fi
lagi
echo "Entri tidak sah." tidur $DELAY
fi selesai
echo "Program ditamatkan."
echo "Penggunaan Ruang Rumah ($USER)" du -sh $HOME
fi
tidur $DELAY
terus
fi
jika [[ $REPLY == 0 ]]; kemudian pecah
fi
lagi
echo "Entri tidak sah." tidur $DELAY
fi selesai
echo "Program ditamatkan."
Dalam versi skrip ini, kami menyediakan satu gelung tidak berkesudahan (yang tidak pernah tamat dengan sendirinya) dengan menggunakan benar arahan untuk membekalkan status keluar kepada manakala. Sejak benar akan sentiasa keluar dengan status keluar sifar, gelung tidak akan berakhir. Ini adalah teknik skrip biasa yang mengejutkan. Memandangkan gelung tidak akan berakhir dengan sendirinya, terpulang kepada pengaturcara untuk menyediakan beberapa cara untuk keluar daripada gelung apabila masa yang sesuai. Dalam skrip ini, memecahkan arahan digunakan untuk keluar dari gelung apabila pemilihan "0" dipilih. The teruskan arahan telah disertakan pada penghujung pilihan skrip lain untuk membolehkan pelaksanaan yang lebih cekap. Dengan menggunakan terus, skrip akan melangkau kod yang tidak diperlukan apabila pilihan dikenal pasti. Sebagai contoh, jika pilihan "1" dipilih dan dikenal pasti, tiada sebab untuk menguji pilihan lain.