一、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