shell編程之打印輸出

   在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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章