来自我最近的帖子:(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。