在用户的bashrc中添加一行export来修改提示符。

aaarticlea/png;base64,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" alt="" />

echo printf
printf命令模仿C程序库(library)里的printf()库程序(library routine)。它几乎复制了
该函数的所有功能。不过在Shell层级的版本上,会有些差异。由于printf的行为是由POSIX
标准所定义,因此使用printf的脚本比使用echo移植性好。
如同echo命令,printf命令可以输出简单的字符串:
[root@master ~]#printf "Hello, Shell\n"
Hello, Shell
[root@master ~]#
你应该可以马上发现,最大的不同在于:printf不像echo那样会自动提供一个换行符号。你必须显式
地将换行符号指定成\n。
echo -n "Enter your name:" //参数-n的作用是不换行,echo默认是换行
要使转义符生效,需加参数-e

# echo输出颜色文本
echo命令改变样式,以输出不同颜色的文本,必须有 -e 选项(开启echo中的转义)。

在echo命令输出之后附加换行,可以使用\n选项:
$ cat >echo
#!/bin/bash
echo -e "this echo's 2 new lines\n\n"
echo "OK"
echo "The log files have all been done"
echo "$LOGNAME carried them out at `date`"
echo "\"/dev/rmt0"\"

echo "/dev/rmt0"
/dev/rmt0
echo "\"/dev/rmt0\""
"/dev/rmt0"

菜单显示,不必多个echo一行行显示,可以一整个echo

echo "===========================================
|           ** unix script test              |
|           1 --- num 1                       |
|           2 --- num 2                       |
|           3 --- num 3                       |
|           4 --- num 4                       |
==============================================="

事实上,echo 除了 -n options 之外,常用选项还有:
-e :启用反斜线控制字符的转换(参考下表)
-E :关闭反斜线控制字符的转换(预设如此)
-n :取消行末之换行符号(与 -e 选项下的 c 字符同意)

3.1.2.4 ANSI-C Quoting
Words of the form $'string' are treated specially. The word expands to string, with backslash-escaped characters replaced as specified by the ANSI C standard. Backslash escape sequences, if present, are decoded as follows:
\a
    alert (bell)
\b
    backspace

前面讲到,包围在单引号之内的字符都不会有特殊含义,所以单引号本身并不能在一对单引号中出现。但是在前面加上$之后,就可以使用\进行转义了,\的转义含义与C语言中的相同。

关于 echo 命令所支持的反斜线控制字符如下表:
\a:ALERT / BELL (从系统喇叭送出铃声)
\b:BACKSPACE ,也就是向左删除键
\c:取消行末之换行符号
\E:ESCAPE,跳脱键
\f:FORMFEED,换页字符
\n:NEWLINE,换行字符
\r:RETURN,回车键
\t:TAB,表格跳位键
\v:VERTICAL TAB,垂直表格跳位键
:ASCII 八进位编码(以 x 开首为十六进制) :反斜线本身
$ echo -e "a\tb\tc\nd\te\tf"
a b c
d e f

上例运用 \t 来区隔 abc 还有 def ,及用\n 将 def 换至下一行。

例二:

$ echo -e "\141\011\142\011\143\012\144\011\145\011\146"
a b c
d e f

与例一的结果一样,只是使用 ASCII 八进位编码。

例三:

$ echo -e "\x61\x09\x62\x09\x63\x0a\x64\x09\x65\x09\x66"
a b c
d e f

与例二差不多,只是这次换用 ASCII 十六进制编码。
测试变量是否已经设置
有时要测试是否已设置或初始化变量。如果未设置或初始化,就可以使用另一值。此命令格式为:
$ { v a r i a b l e : - v a l u e }
意即如果设置了变量值,则使用它,如果未设置,则取新值。例如:
$ COLOUR=blue
$ echo "The sky is ${COLOR:-grey} today"
The sky is grey today
变量c o l o u r取值b l u e,e c h o打印变量c o l o u r时,首先查看其是否已赋值,如果查到,则使
用该值。变量$COLOR没有设置,所以会打印后面的grey

上面的例子并没有将实际值传给变量,需使用下述命令完成此功能:
$ { v a r i a b l e : = v a l u e }
下面是一个更实用的例子。查询工资清单应用的运行时间及清单类型。在运行时间及类
型输入时,敲回车键表明用户并没有设置两个变量值,将使用缺省值( 0 3 : 0 0和We e k l y),并
传入a t命令中以按时启动作业。
#!/bin/bash
# vartest
echo "what time do you wish start the payroll [03:00]:"
read TIME
echo " process to start at ${TIME:=03:00} OK"
echo "Is it a monthly or weekly run [Weekly]:"
read RUN_TYPE
echo "Run type is ${RUN_TYPE:=Weekly}'
at -f $RUN_TYPE $TIME
在输入域敲回车键,输出结果如下:
what time do you wish start the payroll [03:00]:

process to start at 03:00 OK
Is it a monthly or weekly run [Weekly]:

Run type is Weekly

在使用putty、secureCRT、XShell等终端仿真器连接linux系统时,ls、vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性。
通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:echo -e "\033[31mRed Text\033[0m",可以输出红色的字体“Red Text”。其中:"\033[31m"和"\033[0m"是ANSI转义序列(ANSI escape code/sequence),它控制文本输出的格式、颜色等,大多数的类unix终端仿真器都能够解释ANSI转义序列。
 
1. ANSI颜色序列格式
通用的控制文本颜色的转义序列格式如下:
    CSI n1 [;n2 [;…]] m
其中CSI全称为“控制序列引导器”(Control Sequence Introducer/Initiator),也就是上述示例中的"\033["(其中\033是你键盘左上角Esc键对应的ascii码(八进制));n1、n2等表示SGR参数(下面会列出一些常用的SGR参数),用于控制颜色、粗体、斜体、闪烁等文本输出格式;m表示转义序列结束。
注:\033是键盘左上角Esc键对应的ASCII码(8进制),\033、\x1b和\e效果一样, 例如:echo -e "\x1b[31mRed Text\e[0m"也输出红色字体“Red Text”。

除了shell命令可输出颜色,其它语言中也可以使用上述ANSI转义序列输出颜色(前提是你使用的终端仿真器能够解析ANSI转义序列),以下给出几种主要语言中输出颜色文本的示例。
注:以下程序仅针对类unix终端有效,win32控制台不支持ANSI转义序列,因而无效。

http://www.cnblogs.com/crabxx/p/4046498.html

https://en.wikipedia.org/wiki/ANSI_escape_code

常用的SRG参数列表如下:

可以选择的编码如下所示(这些颜色是ANSI标准颜色):
编码 颜色/动作
0   重新设置属性到缺省设置
1   设置粗体
2   设置一半亮度(模拟彩色显示器的颜色)
4   设置下划线(模拟彩色显示器的颜色)
5   设置闪烁
7   设置反向图象
22   设置一般密度
24   关闭下划线
25   关闭闪烁
27   关闭反向图象
30   设置黑色前景
31   设置红色前景
32   设置绿色前景
33   设置黄色前景
34   设置蓝色前景
35   设置紫色前景
36   设置青色前景
37   设置白色(灰色)前景
38   在缺省的前景颜色上设置下划线
39   在缺省的前景颜色上关闭下划线
40   设置黑色背景
41   设置红色背景
42   设置绿色背景
43   设置黄色背景
44   设置蓝色背景
45   设置紫色背景
46   设置青色背景
47   设置白色(灰色)背景
49   设置缺省黑色背景
其他有趣的代码还有:
\033[2J   清除屏幕
\033[0q   关闭所有的键盘指示灯
\033[1q   设置"滚动锁定"指示灯(Scroll Lock)
\033[2q   设置"数值锁定"指示灯(Num Lock)
\033[3q   设置"大写锁定"指示灯(Caps Lock)
\033[15:40H 把关闭移动到第15行,40列
\007    发蜂鸣生beep

\033与\e是一样功能

\a ASCII 响铃字符(也可以键入 \007)
\e ASCII 转义字符(也可以键入 \033)

下面看几个例子:

echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"

echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"

控制选项说明 :

m前面的0可以省略。

\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- 37m 设置前景色
\033[40m -- 47m 设置背景色 
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标

顺序无关,只需要记忆数值所代表的含义即可,因为数值已经限定了是背景还是前景之类的

文本终端的显示颜色可以使用“ANSI非常规字符序列”来生成。
例如:echo -e "\033[44;37;5m ME\033[0m COOL"
解释:"\033[44;37;5m ME "设置背景为蓝色,前景为白色,闪烁光标,输出字符“ME”;
"\033[0m COOL"重新设置屏幕到缺省设置,输出字符 “COOL”。
"e"是命令echo的一个可选项,它用于激活特殊字符的解析器。"\033"引导非常规字符序列(即"\033["表示终端转义字符开始,"\033"即退出键<ESC>的ASCII码)。"m"意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符是"44;37;5"和"0"。修改"44;37;5"可以生成不同颜色的组合,数值和编码的前后顺序没有关系。

echo显示带颜色,需要使用参数-e
格式如下:
echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"
例如:
echo -e "\033[41;37m TonyZhang \033[0m"

echo -e "\e[41;37m TonyZhang \e[0m"
其中41的位置代表底色, 37的位置是代表字的颜色

注:
1、字背景颜色和文字颜色之间是英文的“""”
2、文字颜色后面有个m
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格

一些说明:
前景颜色各数字是对应背景颜色减去10。
结束非常规字符序列的"m"要紧跟前面的数字,不能有空格。
命令也可以写成echo -e "^[[44;37;5m ME \033[0m COOL",其中的"^["是先按Ctrl-V,然后再按<ESC>键产生的。
输出带有颜色的文本,echo命令必须带有选项"-e"。
这种方法只能暂时改变echo命令输出的文本的样式,logout后就恢复为默认。修改.bashrc文件,可以修改默认的显示样式。
如:在.bashrc文件的最后面追加一行:echo -e '\033[47;30m'。

# echo命令的其他用法
光标跳到第60列,然后显示一个OK。
格式:echo -en '\033[60G' && echo OK
说明:"\033["是终端转义字符开始,60G是命令。

添加颜色相当容易,第一步是设计不带颜色的提示行;
添加终端(而不是 bash)可识别的专用转义序列,以使它以彩色显示文本的某些部分。
标准 Linux 终端和 X 终端允许您设置前景(文字)颜色和背景颜色,如果需要,还可以启用 "bold" 字符。
有八种颜色可供我们选择。前景编号 (30-37) 和背景编号 (40-47)
颜色是通过在 PS1 中添加专用序列来选择的──基本上是夹在 "\e["(转义开方括号)和 "m" 之间数字值。如果指定一个以上的数字代码,则用分号将它们分开。下面是一个颜色代码示例:"\e[0m"
如果将数字代码指定为零,则它就会通知终端将前景、背景和加粗设置重置为它们的默认值。您可能会在提示行结束时使用这个代码,以使您键入的文字成为非彩色的。

我已说明了如何在提示行中添加信息和颜色,但您还可以更进一步。您可以通过在提示行中添加专用代码来使 X 终端(如 rxvt 或 aterm)的标题栏得到动态更新。您所要做的只是将下面的序列添加到您的 PS1 提示行中:
"/e]2;titlebar/a"
只须用您希望其出现在 xterm 标题栏中的文字替换子串 "titlebar" 即可,现在已经一切就绪了!不必使用静态文字;您可以将 bash 转义序列插入标题栏中。请查看下面这个示例,它将用户名、主机名和当前工作目录显示在标题栏中,并定义了一个简短、明亮的绿色提示行:
export PS1="/[/e]2;/u@/H /w/a/e[32;1m/]>/[/e[0m/] "
因为它将全部信息显示在标题栏上,而不是显示在终端上,终端对一行可以显示多少字符有限 制。顺便提一句,确保用 "/[" 和 "/]" 将您的标题栏序列括起来(因为就终端而言,这个序列是非打印序列)。将大量信息放在标题栏中的问题是,如果您使用非图形终端(如系统控制台),则看不到这 些信息。为了解决这个问题,可以在您的 .bashrc 中添加以下几行:
if [ "$TERM" = "linux" ]
then
#we're on the system console or maybe telnetting in
export PS1="/[/e[32;1m/]/u@/H > /[/e[0m/]"
else
#we're not on the console, assume an xterm
export PS1="/[/e]2;/u@/H /w/a/e[32;1m/]>/[/e[0m/] "
fi
这个 bash 条件语句将根据当前的终端设置动态设置提示行。为了获得一致性,您一定希望配置您的 ~/.bash_profile,以便它在启动时搜索 (source) 您的 ~/.bashrc。确保您的 ~/.bash_profile 文件中有以下这样一行:
source ~/.bashrc

颜色码表

#!/bin/bash
T='samples'
echo
echo "        default   40m       41m       42m       43m       44m       45m       46m       47m"
## FG 为前景(foreground)色, BG 为背景(background)色
for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' '  36m' '1;36m' '  37m' '1;37m'
        do
        FG=$(echo $FGs|tr -d ' ')
        echo -en " $FGs \033[$FG $T "
        for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
                do
                echo -en " \033[$FG\033[$BG $T \033[0m"
        done
        echo
done
echo
vi cfont
cfont()
{
while (($#!=))
do
case $ in
-b)
echo -ne " ";
;;
-t)
echo -ne "\t";
;;
-n)
              echo -ne "\n";
;;
-black)
echo -ne "\033[30m";
;;
-red)
echo -ne "\033[31m";
;;
-green)
echo -ne "\033[32m";
;;
-yellow)
echo -ne "\033[33m";
;;
-blue)
echo -ne "\033[34m";
;;
-purple)
echo -ne "\033[35m";
;;
-cyan)
echo -ne "\033[36m";
;;
-white|-gray) echo -ne "\033[37m";
;;
-reset)
echo -ne "\033[0m";
;;
-h|-help|--help)
echo "Usage: cfont -color1 message1 -color2 message2 ...";
echo "eg: cfont -red [ -blue message1 message2 -red ]";
;;
*)
echo -ne "$1"
;;
esac
shift
done
}
source cfont  #将此函数放入当前shell环境中,然后才能执行
cfont -cyan
cfont -reset

shell之echo与printf和颜色的更多相关文章

  1. shell脚本--echo和printf打印输出

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 注:本文关于引号等特殊符号的处理仅仅只是几个例子,想要彻底搞明 ...

  2. [ SHELL编程 ] echo和printf使用实例

    本文主要描述Linux系统中echo和printf命令的使用方法,包括命令参数的含义.使用技巧. 1.echo    了解一个命令我们首先要知道它能做什么,它有哪些参数,参数的含义,可以实现我们哪方面 ...

  3. shell之echo and printf

    #!/bin/sh _________echo___________#read name #echo "$name It is a test" #read命令从标准的输入中读取一行 ...

  4. shell 的echo和 printf

    shell的echo指令是输出语句  就好比Python的print 在显示字符串的时候可以省略双引号  但是最好还是带上 echo ' Ti is a dashaobing' echo Ti is ...

  5. shell入门笔记2:字符串、数组、echo与printf

    说明: 本文是关于http://c.biancheng.net/cpp/shell/的相关笔记 shell字符串 字符串可以用单引号,也可以用双引号,也可以不用引号. 1 #!/bin/bash 2 ...

  6. shell echo/read/printf/流程控制章节笔记

    // echo read printf 流程控制 命令 1.read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 read hello 输入xxx echo $hell ...

  7. 【转】shell脚本中echo显示内容带颜色的实现方法

    shell脚本中echo显示内容带颜色的实现方法 shell脚本里使用echo输出颜色  

  8. echo和printf打印输出

    [root@node2 scprits]# echo Hello World! Hello World! [root@node2 scprits]# echo 'Hello World!' Hello ...

  9. linux BASH shell下设置字体及背景颜色

    BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e ...

随机推荐

  1. javascript的词法分析

    -.arguments的解释: 1.是一个对象,是一个长的很像数组的对象 二.arguments内容是什么? 1.arguments是函数运行时的实参列表 2.arguments收集的“所有”的实参, ...

  2. Git使用详细教程

    参考网址: http://www.admin10000.com/document/5374.html http://blog.sina.com.cn/s/blog_4f3b79d0010166ab.h ...

  3. Euro Efficiency_完全背包

    Description On January 1st 2002, The Netherlands, and several other European countries abandoned the ...

  4. Android pix转换为sp

    /** * 把pix值转换为sp * * @return */ public static float px2sp(Context context, float pixValue) { final f ...

  5. 不要在类的函数中使用static字段

    昨天在做存储服务的压力测试,后台是采用多线程根据玩家唯一标识做线程划分的,在测试的过程中发现,进行存储的时候,会发生玩家数据错乱的情况. 一开始怀疑是上层逻辑在处理数据的时候发生了错乱,导致保存的时候 ...

  6. Linux中的三个特殊文件

    stdin: 0 标准输入 stdout: 1 标准输出 stderr : 2 标准错误输出 /dev/null 表示一个只写文件.所有写入到这个文件的信息都会丢失

  7. 【题解】【BST】【Leetcode】Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  8. 哈夫曼树(Huffman Tree)与哈夫曼编码

    哈夫曼树(Huffman Tree)与哈夫曼编码(Huffman coding)

  9. jquery 平滑滚动页面到某个锚点

    $(document).ready(function() {         $("a.topLink").click(function() {                 $ ...

  10. dede首页调用栏目内容_{dede:field.content/}首页调用

    如何将已经做成单页的栏目内容调用到首页来. 常用的需要调到首页来的单页内容,比如公司简介.联系我们等内容,我们在首页可能都要进行展现.通过常规的方式,包括查阅dede官方论坛资料,都找不到比较合适的答 ...