Bash 回显输出与预期的格式化输出不同

Bash 回显输出与预期的格式化输出不同,bash,cygwin,echo,Bash,Cygwin,Echo,我对echo使用以下格式 它应该输出粗体和带下划线的文本,但不是使其粗体,而是提供“更亮”的颜色变体,并将带下划线的代码(4)视为青色,从而生成浅青色文本 我在Windows7电脑上使用Cygwin的Bash 编辑:我发现了一个与我的案例相关的链接,但我不确定它是如何应用的,因为在我使用Cygwin的时,他们正在讨论windows 10 update bash,我的个人资料中有以下内容: ## NORMAL export NORMAL=$(tput sgr0) ## FOREGROUND e

我对echo使用以下格式

它应该输出粗体和带下划线的文本,但不是使其粗体,而是提供“更亮”的颜色变体,并将带下划线的代码(4)视为青色,从而生成浅青色文本

我在Windows7电脑上使用Cygwin的Bash


编辑:我发现了一个与我的案例相关的链接,但我不确定它是如何应用的,因为在我使用Cygwin的

时,他们正在讨论windows 10 update bash,我的个人资料中有以下内容:

## NORMAL
export NORMAL=$(tput sgr0)

## FOREGROUND
export FGBLACK=$(tput setaf 0)
export FGRED=$(tput setaf 1)
export FGGREEN=$(tput setaf 2)
export FGYELLOW=$(tput setaf 3)
export FGBLUE=$(tput setaf 4)
export FGMAGENTA=$(tput setaf 5)
export FGCYAN=$(tput setaf 6)
export FGWHITE=$(tput setaf 7)
export FGBRIGHT=$(tput bold)
export FGNORMAL=$(tput sgr0)
export FGBOLD=$(tput bold)

## BACKGROUND
export BGBLACK=$(tput setab 0)
export BGRED=$(tput setab 1)
export BGGREEN=$(tput setab 2)
export BGYELLOW=$(tput setab 3)
export BGBLUE=$(tput setab 4)
export BGMAGENTA=$(tput setab 5)
export BGCYAN=$(tput setab 6)
export BGWHITE=$(tput setab 7)

## SHAPE
export SHUNDERLINE=$(tput smul)
export SHBOLD=$(tput bold)
export SHSBOLD=$(tput smso)
因此,我可以轻松地在命令行或脚本中使用它。例如:

#!/bin/bash

echo "This is ${FGRED}foreground red${NORMAL}"
echo "This is ${BGRED}background red${NORMAL}"
echo "This is ${FGYELLOW}${BGRED}background red and foreground yellow${NORMAL}"
echo "This is ${SHUNDERLINE}underlined${NORMAL}"
echo "This is ${FGCYAN}${SHUNDERLINE}cyan underlined${NORMAL}"
echo "This is ${SHBOLD}bold${NORMAL}"
echo "This is ${SHUNDERLINE}${SHBOLD}underlined bold${NORMAL}"
echo "This is ${FGBLUE}${SHBOLD}blue bold${NORMAL} and this ${FGBLUE} normal blue${NORMAL}"
echo "This is ${SHSBOLD}standout bold${NORMAL}"
其结果如下:


希望它对你有用

您似乎是通过旧的cygwin.bat运行bash,因此您使用的是Windows控制台作为终端,而不是通过更高级的默认Mintty终端

默认情况下,Cygwin安装程序在windows菜单中安装“Cygwin终端”条目

菜单项的内容如下

C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
路径式

C:\cygwin64\bin
这些项目也可以在cygwin安装程序运行的最后一步重新创建。 有两个框条目:

□ 在桌面上创建图标
□ 将图标添加到“开始”菜单


如果启用它们,这两个序列都将被重新创建

可能与用
\033
替换
>e
序列的效果相同me@Aserre我也尝试了\033和\E,日元符号相当于我正在使用的系统区域设置的反斜杠,它尚未证明存在问题,因此我不认为这是问题所在,但如果由于更改系统区域设置而出现已知问题,请务必告知。您使用的是哪种终端?Mintty生成预期的“粗体加下划线”,而在CMD上生成青色。@matzeri是的,正是这样,我在我的pc中找到了Mintty(在cygwin目录/文件夹中),它生成了输入同一命令时所需的输出,我或多或少地理解外壳和终端是分开的,但这是否意味着bash默认使用CMD?我能改变吗?顺便说一下,我并没有真正指定一个终端(?),我只是按原样打开bash可执行文件