シャープな画面とディスプレイバナー

シャープな画面とディスプレイバナー

常に投影される画面にテキストバナーを配置する必要があります。画面はtmuxを使用してPCに接続されます。

テキスト「バナー」の例:

figlet $(fortune)

または

toilet "$(cowsay $(fortune))"

あなたは理解しました。

当初、私たちは問題が発生した場合に備えて、このバナーに「再生機能」が必要だと考え、次のようにしました。

watch --interval 1 --no-title echo Paranoid about crashes, but I should not be

しかし、この製品は1年間で一度も故障したことはありません! (uptime>1年)

だから私たちは他の場所でも単純化して配布しています。私は以下を実行するUNIXコマンドが欲しいです。

  • 画面を消去する(例clear:)
  • フォーマットされた文字列の表示(例printf:)
  • モーダルです(ncursesアプリケーションに似ています)。

私はオンラインチュートリアルから抜粋して、次のような書き込みを書き始めました。

#include <ncurses.h>

int main(int argc, char** argv) {
  char* greeting = "Hello, world!";
  initscr();
  addstr(greeting);
  refresh();
  getch();
  endwin();
  return 0;
}

しかし、これは「モーダル」ではなく(モーダルはCTRL + Cまでのすべての入力を無視します)、おそらく「既存のツールを再構築」しています。

私の場合、どのUNIXツールを使用しますか?

ベストアンサー1

Ctrl + C(INT信号)を監視するコマンドは次のとおりです。trap

#!bin/bash

MSG="Hello, world!"
trap "clear; echo -e $MSG" SIGINT SIGTERM

while :
do
    sleep 60
done

アップデート - トラップでキャッチできるその他の信号

SIGINT - Ctrl-c
SIGQUIT- Ctrl-\(これによりプログラムは終了しますが、トラップ内のコマンドは引き続き実行されます)

SIGSTOP(Ctrl-z)は罠にかかったようではありません。

trap放出された信号をキャプチャすることも可能ですkillが、どのくらいのかわかりません。

trap
EXIT- 、、DEBUGなどRETURNの他の特殊名もサポートされていますERR
これに関するより多くのドキュメントは、以下にあります。バッシュリファレンスマニュアル

おすすめ記事