【Shell】腳本文件實現數據的輸出(純干貨)


一、echo用法:
echo使用說明:
echo命令支持-e選項,使用該選項可以讓echo命令識別\后面的轉義符號含義,常見轉義符號如表1-1所示。其中\033或\e后面可以跟終端編碼,終端編碼可以用於定義終端的字體顏色、背景顏色、定位光標等。

①使用echo命令編寫一個更有趣的腳本文件菜單!

#!/bin/bash
#version:1.0
#這個腳本僅演示菜單輸出,沒有具體的功能實現

echo "這是一個打印菜單的例子"

echo "1.查看網卡信息"
echo "2.查看內存信息"
echo "3.查看磁盤信息
4.查看CPU信息
5.查看賬戶信息"

#!/bin/bash
#Version:2.0
clear
echo -e "\033[42m---------------------------------\033[0m"
echo -e "\e[2;10H這里是菜單\t\t#"
echo -e "#\e[32m 1.查看網卡信息\e[0m                #"
echo -e "#\e[33m 2.查看內存信息\e[0m                #"
echo -e "#\e[34m 3.查看磁盤信息\e[0m                #"
echo -e "#\e[35m 4.查看CPU信息\e[0m                 #"
echo -e "#\e[36m 5.查看賬戶信息\e[0m                #"
echo -e "\033[42m---------------------------------\033[0m"
echo

②彩色打印字體

annie.wu@RMSH06:~/work$ echo -e "\033[1mOK"   #加粗顯示OK后沒關閉屬性
annie.wu@RMSH06:~/work$ echo -e "\e[1mOK\e[0m"  #使用\e和\033的效果相同
annie.wu@RMSH06:~/work$ echo -e "\e[4mOK\e[0m"  #加下划線后輸出OK
annie.wu@RMSH06:~/work$ echo -e "\e[5mOK\e[0m"  #閃爍顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[30mOK\e[0m"  #黑色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[31mOK\e[0m"  #紅色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[32mOK\e[0m"  #綠色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[33mOK\e[0m"  #棕色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[34mOK\e[0m"  #藍色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[35mOK\e[0m"  #紫色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[36mOK\e[0m"  #藍綠色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[37mOK\e[0m"  #亮灰色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[1;33mOK\e[0m"  #亮黃色顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[42mOK\e[0m"  #綠色背景顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[44mOK\e[0m"  #藍色背景顯示OK
annie.wu@RMSH06:~/work$ echo -e "\e[32;44mOK\e[0m"  #綠色字體,藍色背景顯示OK

③實際應用Log區分打印:

echo -e "\e[32m[ info `date "+%Y-%m-%d %H:%M:%S"`]\e[0m"
echo -e "\e[31m[ error `date "+%Y-%m-%d %H:%M:%S"`]\e[0m"
echo -e "\e[33m[ warning `date "+%Y-%m-%d %H:%M:%S"`]\e[0m"

二、printf用法:

annie.wu@RMSH06:~/work$ printf "%d\n" 12
12
annie.wu@RMSH06:~/work$ printf "%d\n" abc
-bash: printf: abc: invalid number
0
annie.wu@RMSH06:~/work$ printf "%5d\n" 12
   12
annie.wu@RMSH06:~/work$ printf "%-5d\n" 12
12
annie.wu@RMSH06:~/work$ printf "|%-10d|\n" 12  #右對齊輸出12,占用10位寬度
|12        |
annie.wu@RMSH06:~/work$ printf "|%10d|\n" 12  #左對齊輸出12,占用10位寬度
|        12|
annie.wu@RMSH06:~/work$ printf "%o\n" 10  #顯示10的八進制值,八進制12轉換為十進制正好是10
12
annie.wu@RMSH06:~/work$ printf "%x\n" 10  顯示10的十六進制值
a
annie.wu@RMSH06:~/work$ printf "%d\n" 0x11
17
annie.wu@RMSH06:~/work$ printf "%d\n" 011
9
annie.wu@RMSH06:~/work$ printf "%u\n" 92347436534856442  
92347436534856442
annie.wu@RMSH06:~/work$ printf "%f\n" 3.55  #打印小數
3.550000
annie.wu@RMSH06:~/work$ printf "%.3f\n" 3.55  #打印小數,小數點后保留3位
3.550
annie.wu@RMSH06:~/work$ printf "|%8.3f|\n" 3.55  #右對齊,占用8位寬度
|   3.550|
annie.wu@RMSH06:~/work$ printf "|%-8.3f|\n" 3.55  #左對齊,占用8位寬度
|3.550   |
annie.wu@RMSH06:~/work$ printf "%s\n" "hello"  #打印字符串
hello
annie.wu@RMSH06:~/work$ printf "|%10s|\n" "hello"  #右對齊,占用10位寬度
|     hello|
annie.wu@RMSH06:~/work$ printf "|%-10s|\n" "hello"  #左對齊,占用10位寬度
|hello     |
annie.wu@RMSH06:~/work$ printf "%s\t%s\n" "hello" "worlf"  #tab間隔打印2個字符串
hello   worlf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM