回声输出不同于预期的格式化输出

时间:2018-11-29 13:00:30

标签: bash cygwin echo

我正在使用以下格式进行回显 Screenshot of the terminal appearance

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

我正在Windows 7 PC上使用Cygwin的Bash。

编辑:我找到了一个与我的情况相关的链接,但我不确定该链接如何应用,因为当我使用Cygwin的enter link description here时,它们正在处理Windows 10更新bash。

2 个答案:

答案 0 :(得分:2)

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

默认的Cygwin安装程序会在Windows菜单中安装“ Cygwin Terminal”条目

菜单项的内容类似于

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

具有类似路径

C:\cygwin64\bin

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

  

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

如果启用它们,则两者都会重新创建

答案 1 :(得分:1)

我的个人资料中有此信息:

## 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}"

结果如下:

enter image description here

希望它对您有用!