在shell脚本编写过程中,我们有足够理由相信使用echo等打印输出命令的频率是相当高的。那下面我们来看看都有哪些打印输出命令以及它们的用法。


echo命令:

       功能说明:默认打印输出到标准输出(屏幕)
                 输出的字符串以空白字符隔开
                 并在最后自动加上换行符
       语    法:echo [-ne][字符串] /echo [--help][--version]
       参    数:
                 -n:  取消自动换行功能
                 -e:  打开反斜杠|[ESC]键转义功能。字符串中出现以下字符,会特别处理,
                      不会当成一般字符输出。
                      
                          \a  发出警告声
                          \b  删除前一个字符
                          \c  删除最后的字符及最后的换行
                          \e  删除最后的字符
                          \E  同\e
                          \f  换行但光标仍停留在原来的位置
                          \n  换行且光标移至行首
                          \r  光标移至行首,但不换行
                          \t  插入tab
                          \v  与\f同
                          \\  插入\字符
                          \nnn 插入nnn(八进制)所代表的ASCII字符
                 -E:  取消反斜杠|[ESC]键转义功能(默认) 
                 --help:显示帮助信息
                 --version:显示版本信息
                 
        特殊使用:格式化文本(包含文件颜色和样式等)
                 例如:
                      echo -e "\033[44;37;5m My\033[0m Color"
                      
                      注释:
                           \033 为[ESC]键的ASCII码 表示终端转义字符开始
                           [44;37;5m 分别代表背景色 前景色 光标闪烁
                           0m  表示恢复到终端默认设置
                           m   表示设置属性并结束非常规字符序列
                           
                      注意:输出文本颜色 必须使用-e选项
                            
                  可选择的颜色/动作编码如下:
                  
                        编码               颜色/动作
                         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列
                         \033[60G        光标移动到第60列
                         \077            发蜂鸣声beep
                         
使用实例:
         
1,模拟Linux服务启动的输出信息
    #!/bin/bash
    #
    Green="\033[32m"
    Normal="\033[0m"
    Jump="\033[60G"
    Service=`basename $0`
    
    if [[ $1 == start ]];then
        echo -e "Strating $Service:  $Jump[ ${Green}OK${Normal} ]"
    elif [[ $1 == stop ]];then
        echo -e "Stopping $Service:  $Jump[ ${Green}OK${Normal} ]"
    else
        echo "Usage: ./$Service {start|stop}"
    fi

      执行结果:

      wKiom1Oaxw3S2mnZAAA3sfY_AHs054.jpg

2,彩色进度条:
    #!/bin/bash
    #
    echo -e "\033[32m"
    b=`echo -e "\033[42;32m[]\033[0m  "`
    echo  Installing........
    echo     --------------------------------------------------------------
    for ((i=0;$i<=60;i+=2))
    do
          printf $b
          sleep 0.1
          b=`echo -e "\033[42;32m[]\033[0m  "`$b
    done
    echo -e "\033[32m"
    echo     --------------------------------------------------------------
    echo "Complete!"
    echo -e "\033[0m"

     执行结果:

     wKioL1Oax_Sio_LdAABEKiGB_dE141.jpg


Printf命令:

         功能描叙:一个更强大,更灵活的打印命令。
                   printf和C语言的使用方式类似。
                   和echo不一样的是,它不会在最后自动加上换行符。
                   需要手工使用\n来指定换行。
         语    法:
                   printf format-string [arguments]
         格式参数:
                   %c:    ASCII字符,如果参数给出字符串,则打印第一个字符
                   %d:    十进制整数
                   %i:    同%d
                   %e:    浮点格式 ([-]d.精度[+-]dd)
                   %E:    浮点格式 ([-d].精度E[+-]dd)
                   %f:    浮点格式 ([-]ddd.precision)
                   %g:    %e或者%f的转换,如果后尾为0,则删除它们
                   %G:    %E或者%f的转换,如果后尾为0,则删除它们
                   %o:    八进制
                   %s:    字符串
                   %u:    非零正整数
                   %x:    十六进制
                   %X:    非零正数,16进制,使用A-F表示10-15
                   %%:    表示字符"%"         
          注    意: 
                   如果给出的格式参数的个数超过给出的参数的个数,
                   那么超出的部分为0或者null