8

晚上好,

我对 Unix 还很陌生,所以也许这个迷你项目太雄心勃勃了。希望有人能指出正确的方向。

在小隔间里工作,我看不到外面有多亮。一般来说,我在早上(晴天)使用黄色终端,在 3:00(晚上)之后使用黑色/绿色终端。

我想做什么(部分只是为了练习我的 bash)。是编写一个脚本,将在 3:00 更改我所有终端的颜色。如果可行,也许我会让它们每小时更改一次或类似的东西。那会安全吗?这可能吗?

以下是我的一些规格:Solaris 10 Bash shell 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 修改 shell 的前景色和背景色将是最简单的。R Samuel Klatchko 使用 PROMPT_COMMAND 的方法可能是最通用的。然而,这有缺点。Bash 只能使用“暗淡”的背景颜色,并且它的前景色/背景色可以被任何应用程序覆盖。以编程方式修改您的 Gnome 终端主题,尤其是实时修改,会困难得多,但会产生更漂亮的结果。

于 2010-01-28T00:56:32.247 回答
0

使用cron,它是 Unix 作业调度程序。并将其设置为运行更改 .bashrc 的命令,就像您链接的问题一样。问题是它只适用于新终端,如果你打开了一些它不会改变它们。

于 2010-01-28T00:22:55.503 回答