Echo 输出与预期的格式化输出不同
Echo output is different from expected formatted output
我正在为 echo 使用以下格式
它应该输出既粗体又带下划线的文本,但不是将其设为粗体,而是给出颜色的 'brighter' 变体,并将带下划线的代码 (4) 视为青色,从而产生 Light青色文字。
我在 windows 7 PC 上使用 Cygwin 的 Bash。
编辑:我发现 link 似乎与我的案例相关,但我不确定它是如何应用的,因为他们正在进行 windows 10 更新 bash 当我使用 Cygwin 的 enter link description here
我的个人资料中有这个:
## 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}"
结果如下:
希望对你有用!
看来你是 运行 bash 通过旧的 cygwin.bat,所以你正在使用 Windows 控制台作为终端,而不是通过默认的 Mintty更高级的终端。
默认情况下,Cygwin 安装程序在 windows 菜单中安装 "Cygwin Terminal" 条目
菜单项的内容像
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
路径类似
C:\cygwin64\bin
这些项目也可以在 cygwin 安装程序的最后一步重新创建 运行。
有两个框条目:
□ Create icon on Desktop
□ Add icon to Start Menu
如果启用它们,两者都将被重新创建
我正在为 echo 使用以下格式
它应该输出既粗体又带下划线的文本,但不是将其设为粗体,而是给出颜色的 'brighter' 变体,并将带下划线的代码 (4) 视为青色,从而产生 Light青色文字。
我在 windows 7 PC 上使用 Cygwin 的 Bash。
编辑:我发现 link 似乎与我的案例相关,但我不确定它是如何应用的,因为他们正在进行 windows 10 更新 bash 当我使用 Cygwin 的 enter link description here
我的个人资料中有这个:
## 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}"
结果如下:
希望对你有用!
看来你是 运行 bash 通过旧的 cygwin.bat,所以你正在使用 Windows 控制台作为终端,而不是通过默认的 Mintty更高级的终端。
默认情况下,Cygwin 安装程序在 windows 菜单中安装 "Cygwin Terminal" 条目
菜单项的内容像
C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
路径类似
C:\cygwin64\bin
这些项目也可以在 cygwin 安装程序的最后一步重新创建 运行。 有两个框条目:
□ Create icon on Desktop
□ Add icon to Start Menu
如果启用它们,两者都将被重新创建