Bilmeden terminalde sonsuz bir döngü koştu


9

Aşağıdaki kodu bazı rastgele kaynaklardan terminalime kopyaladım ve koştum:

while sleep 1;
  do tput sc;
  tput cup 0 $(($(tput cols)-29));
  date;
  tput rc;
done &

Kod, terminalin sağ üst köşesinde bir çalışma saati göstermektir. Parçacık çok iyi çalıştı ve tam olarak istediğim şeyi yaptı, ama şimdi sadece bu döngüyü bitirmek ve saatten kurtulmak istiyorum.

Ayrıca, yukarıdaki kodu anlamak gerekiyor. tputKomutun ne yaptığını bildiğim gibi bir fikrim var, ancak hala bağlanamadığım birçok nokta var.


1
jobsEtkin arka plan işlerini listelemek ve ardından yazarak ön plana koymak için oturumunuzda çalışabilirsiniz fg <job number>. Sonra bu sonsuz döngüyü durdurmak için Ctrl + C yazın. Bu senaryo yalnızca snippet'i çalıştıran terminalde çalışır.
Yurij Goncharuk

Çok teşekkür ederim, döngüden kurtulmanın çok temiz bir yolu. Bu kabul edilen cevap olmalı.
Kartik Chauhan

Rica ederim! Aşağıdaki cevap olarak koydum.
Yurij Goncharuk

1
Terminal penceresinin kapatılmasının, ona bağlı olan tüm çalışan işleri de sonlandıracağını unutmayın.
trlkly

Burada iki sorunuz var. 2'nci yeni bir soruya bölebilir misiniz?
ctrl-alt-delor

Yanıtlar:


15

jobsOturumunuzda aktif arka plan işlerini listelemek ve ardından yazarak bunları ön plana koymak için komut çalıştırabilirsiniz fg <job number>. Sonra bu sonsuz döngüyü durdurmak için Ctrl+ Cyazın.

Bu senaryo yalnızca snippet'i çalıştıran terminalde çalışır.


Açıklama:

tput sc - imleç konumunu kaydet.

tput cup 0 $(($(tput cols)-29))- imleci 0Y ekseni ve (count of screen columns minus 29)X ekseni konumuna getirin.

date - sadece geçerli tarihi yazdırın.

tput rc - imleç konumunu geri yükle.

while sleep 1; ... do ... ; done - 1 saniyelik gecikmeli döngü.

Tip help whilehakkında daha fazla bilgi edinmek whilekabukta döngü ve takip adam 1 tput veya doc tput'un tldp nasıl tput'un eserlerini bilmek.


Hala kod ne yaptığını nasıl yaptığını bilmek istiyorum.
Kartik Chauhan

@KartikChauhan Ben de bir açıklama yaptım.
Yurij Goncharuk

@KartikChauhan Haklısın! Teşekkürler! Bunu düzelttim.
Yurij Goncharuk

3
kill %1(veya birden fazla iş varsa farklı bir numara) fg+Ctrl-C
Roman Odaisky'nin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.