Tetap Sederhana
until nc -z 127.0.0.1 25565
do
echo ...
sleep 1
done
Biarkan saja shell berurusan dengan status keluar secara implisit
Shell dapat menangani status keluar (direkam dalam $?
) dalam dua cara, eksplisit, dan implisit.
Eksplisit:status=$?
, yang memungkinkan pemrosesan lebih lanjut.
Tersirat:
Untuk setiap pernyataan, dalam pikiran Anda , tambahkan kata "berhasil" ke perintah, lalu tambahkanif
, until
atau while
konstruksi di sekitar mereka, sampai frasa tersebut masuk akal.
until nc
berhasil ; do ...; done
-z
opsi akan menghentikan nc
dari membaca stdin, jadi < /dev/null
tidak diperlukan pengalihan.
Anda dapat mencoba sesuatu seperti
while true; do
nc 127.0.0.1 25565 < /dev/null
if [ $? -eq 0 ]; then
break
fi
sleep 1
done
echo "The command output changed!"
Ubah ekstensi file secara rekursif di Bash
Bagaimana menghindari Tidak ada file atau direktori Kesalahan untuk target Makefile `make clean`