Linux - Shell 脚本和彩色文本

Linux - Shell 脚本和彩色文本

来自我最近的帖子:(https://stackoverflow.com/questions/15046851/linux-colorizing-text-in-files) 我现在可以在终端窗口中为文本着色。 (使用echo

现在我想运行一个 Shell 脚本,/etc/issue每当我决定执行我的 shell 脚本时,它都会覆盖我的脚本。

这是我的脚本:

#!/bin/sh
# re-write /etc/issue
echo "Welcome Back!........whatever message I will put later on" > /etc/issue

所以现在我正在寻找对文本“欢迎回来!”进行着色。

根据本网站,我需要使用 Ctrl+V+ESC 转义颜色代码,但是如何在 shell 脚本中执行此操作,目的是重写/etc/issue

我确实复制并粘贴了作者提供的示例(rc.issue)。事实上,该/etc/issue文件在启动时会被重写,但没有颜色。只是纯文本显示。

谁能告诉我这个吗?

答案1

一种适用于大多数 shell(不仅仅是bash)的方法是确保转义符出现在 shell 脚本的文本中。

如果您使用vim,那么您仍然需要键入Control-VEscape才能输入转义符,因为否则转义符会从插入模式更改回命令模式。

其他编辑可能有也可能没有使这变得更容易或更困难的怪癖。

如果您正在使用bash并且不关心可移植性,那么还有其他可用选项,使用\e转义符号(请参阅bash有关ANSI-C 引用)。例如:

escape=$'\e'

但这不适用于所有其他 shell。

相关内容