8

こんばんは、

私は Unix にかなり慣れていないので、このミニ プロジェクトは野心的すぎるかもしれません。誰かが正しい方向を指し示してくれることを願っています。

キュービクルで働いていて、外がどれほど明るいかわかりません。一般的に、私は朝 (晴れ) に黄色の端末を使用し、3:00 以降 (夜) に黒/緑の端末を使用します。

私がやりたいこと (部分的には bash を練習するため)。3:00 にすべての端末の色を変更するスクリプトを作成することです。それが機能する場合は、1時間ごとに変更するか、そのようなものにします。それは安全でしょうか?これは可能ですか?

私の仕様の一部を次に示します。 Solaris 10 Bash シェル Gnome

私は今これを見ています: Gnome端末のテーマをプログラムで変更します

4

3 に答える 3

6

これを行う場合、PROMPT_COMMANDから始めます。Bash は、プロンプトを表示する直前にそのスクリプトを実行します。

いくつかの選択肢があります。PROMPT_COMMAND 内にスクリプト自体を含めることができます。

PROMPT_COMMAND='if [ is_morning ]; then echo "MORNING_COLORS'; else echo "EVENING_COLORS"; fi

または、PROMPT_COMMAND で外部コマンド (bash スクリプトでもかまいませんし、必要に応じて別の言語を使用することもできます) を実行して、そこですべての作業を行うことができます。

PROMPT_COMMAND=/path/to/setcolor_timeofday

これで私が見た唯一の穴は、時間が変わったときにプログラムを実行している場合 (たとえば、tail -fファイルを監視するために使用している場合)、bash プロンプトに戻るまで背景が変更されないことです。

于 2010-01-28T00:23:29.363 に答える
2

ここで他の人が指摘しているように、bashでPS1を介してシェルの前景色と背景色を変更するのが最も簡単です。PROMPT_COMMAND を使用した R Samuel Klatchko のアプローチは、おそらく最も汎用性があります。ただし、これには欠点があります。Bash は「くすんだ」背景色のみを使用でき、その前景色/背景色は任意のアプリケーションでオーバーライドできます。Gnome ターミナルのテーマをプログラムで、特にリアルタイムで変更するのは、はるかに困難ですが、はるかにきれいな結果が得られます。

于 2010-01-28T00:56:32.247 に答える
0

cronを使用します。これは Unix ジョブ スケジューラです。そして、リンクした質問のように .bashrc を変更するコマンドを実行するように設定します。問題は、新しい端末でのみ機能することです。いくつか開いている場合、それらは変更されません。

于 2010-01-28T00:22:55.503 に答える