GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengulang Perintah Sampai Berhasil Di Linux

Dalam panduan singkat ini, kita akan belajar bagaimana mengulang perintah sampai berhasil di Linux. Ini dapat membantu dalam banyak kesempatan. Misalnya, Anda dapat menggunakan metode ini untuk memverifikasi konektivitas jaringan antara dua atau lebih host atau memeriksa konektivitas Internet untuk melihat apakah Anda masih online atau offline. Jadi apa pun alasannya, jika Anda ingin mengulang perintah atau program Linux hingga selesai dengan sukses, panduan ini akan membantu.

Ulangi perintah sampai berhasil di Linux

Untuk eksekusi berulang dari daftar perintah, kami menggunakan konstruksi perulangan BASH berikut ini :

  1. Sementara loop,
  2. Sampai putaran.

Sementara Berputar mengeksekusi blok kode (terlampir dalam do ... done ) ketika kondisinya true dan terus mengeksekusinya sampai kondisinya menjadi false . Setelah kondisinya menjadi salah , perulangan while dihentikan.

Sampai Berulang adalah kebalikan dari while loop. Itu mengeksekusi blok kode (terlampir dalam do ... done ) bila kondisinya salah dan terus jalankan itu sampai kondisinya menjadi true . Setelah kondisinya menjadi true , perulangan hingga dihentikan.

Pertama, mari kita lihat cara mengulang perintah atau program Linux hingga berhasil menggunakan while loop.

1. Ulangi perintah sampai berhasil menggunakan while loop

Lihat perintah berikut:

$ while ! ping -c 3 ostechnix.com ; do sleep 2 ; done ; xcalc

Perintah ini akan terus mencoba melakukan ping ke situs ostechnix.com. Setelah situs online, loop While akan berakhir dan menampilkan "xcalc" program. Di sini, xcalc adalah opsional. Itu hanya untuk tujuan pemberitahuan. Jika tidak, kami mungkin perlu terus memeriksa jendela Terminal untuk memverifikasi apakah perintah berhasil atau tidak.

Penjelasan:

Mari kita uraikan perintah di atas dan lihat apa yang dilakukan setiap pernyataan.

while ! ping -c 3 ostechnix.com ;

Ini adalah pernyataan bersyarat. Seperti yang Anda lihat dalam pernyataan ini, kami mengawali perintah ping dengan ! karakter. Ini berfungsi sebagai "TIDAK" kondisi. Jadi arti sebenarnya dari baris di atas adalah - sementara TIDAK bisa melakukan ping ke ostechnix.com .

do sleep 2 ; done ;

Pernyataan "do sleep 2" , menunjukkan bahwa jangan palu sistem dengan berulang kali mencoba perintah ping setiap detik. Kami menginstruksikan sistem untuk menunggu sebentar, misalnya 2 detik, dan kemudian mencoba melakukan ping ke ostechnix.com. Dengan kata lain, perintah While akan terus melakukan ping ke situs setiap 2 detik. Setelah kondisi menjadi salah, loop while akan berhenti.

xcalc ;

Jalankan program xcalc. Program ini hanya akan berjalan setelah eksekusi perintah sebelumnya berhasil.

Jadi sesuai perintah di atas, Jika kondisinya benar (yaitu jika ostechnix.com "TIDAK" dapat dijangkau), ia akan mengeksekusi blok kode yang diapit do...done . Di sini, kodenya adalah "tidur 2". Jadi menunggu selama 2 detik dan kemudian coba lagi untuk melakukan ping ke situs. Itu akan terus mengeksekusi itu sampai kondisinya menjadi salah. Setelah kondisi menjadi salah (yaitu jika ostechnix.com dapat dijangkau), loop akan berakhir dan akhirnya program xcalc akan terbuka.

Berikut adalah contoh keluaran dari perintah di atas:

ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
ping: ostechnix.com: Name or service not known
PING ostechnix.com (104.26.5.40) 56(84) bytes of data.
64 bytes from 104.26.5.40 (104.26.5.40): icmp_seq=1 ttl=55 time=63.6 ms
64 bytes from 104.26.5.40 (104.26.5.40): icmp_seq=2 ttl=55 time=84.8 ms
64 bytes from 104.26.5.40 (104.26.5.40): icmp_seq=3 ttl=55 time=79.9 ms

--- ostechnix.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 63.602/76.114/84.810/9.068 ms
Warning: Cannot convert string "-adobe-symbol-*-*-*-*-*-120-*-*-*-*-*-*" to type FontStruct

2. Ulangi perintah sampai berhasil menggunakan Sampai loop

Anda juga dapat melakukannya menggunakan loop "Sampai" seperti di bawah ini.

$ until ping -c 3 ostechnix.com ; do sleep 2 ; done ; xcalc

Mari kita uraikan perintah ini dan lihat apa yang dilakukan setiap pernyataan:

until ping -c 3 ostechnix.com ;

Ini adalah pernyataan bersyarat. Artinya - ping sampai situs dapat dijangkau.

do sleep 2 ; done ;

Cobalah untuk melakukan ping ke situs setiap 2 detik hingga dapat dijangkau. Setelah kondisi menjadi benar yaitu situs dapat dijangkau, loop akan dihentikan.

xcalc

Jalankan program xcalc. Ini hanya akan berjalan setelah eksekusi perintah sebelumnya berhasil.

Jadi sesuai perintah di atas, perulangan Sampai akan terus melakukan ping ke ostechnix.com sampai berhasil. Setelah situs dapat dijangkau, pengulangan sampai akan berakhir dan program xcalc akan terbuka.

Bacaan terkait:

  • Cara Menjalankan Perintah Linux Setiap X Detik Selamanya

3. Ulangi perintah sebelumnya sampai berhasil

Kita tahu sekarang bagaimana perintah Linux sampai berhasil keluar. Bagaimana dengan perintah sebelumnya? Bagaimana Anda mengulangi atau mencoba kembali perintah sebelumnya sampai berhasil? Itu juga mudah!

Kami telah memposting berbagai cara untuk mengulangi perintah terakhir. Jika Anda tidak tahu bagaimana melakukannya, lihat panduan berikut.

  • Berbagai Cara Mengulang Perintah Terakhir Anda Di Linux

Seperti yang dinyatakan dalam tautan di atas, untuk menjalankan perintah yang terakhir dieksekusi, cukup ketik tanda seru ganda , dan tekan ENTER seperti di bawah ini:

$ !!

Ini akan menjalankan perintah terakhir.

Jadi jika Anda ingin mengulang perintah sebelumnya sampai berhasil menggunakan while loop, jalankan:

$ !!; while [ $? -ne 0 ]; do !!; done

Untuk mengulangi perintah sebelumnya hingga berhasil menggunakan perulangan Sampai, jalankan:

$ until !!; do :; done

Untuk contoh lebih lanjut tentang Bash While loop dan Sampai loop, lihat panduan berikut:

  • Bash Scripting - Sementara Dan Sampai Perulangan Dijelaskan Dengan Contoh

Linux
  1. Cara Menjalankan atau Mengulang Perintah Linux Setiap X Detik Selamanya

  2. Contoh Perintah ping di Linux

  3. Ulangi perintah secara otomatis di Linux

  1. Cara Mengganti Nama File di Linux

  2. Cara menggunakan Perintah Su di Linux

  3. Cara Membuat Script Perintah Linux

  1. Cara Menggunakan Perintah Disown di Linux

  2. Cara Menginstal dan Menggunakan Perintah Ping di Linux

  3. Bagaimana cara melakukan ping di linux sampai host diketahui?