shell格式化輸出(echo命令以及顏色代碼)和read輸入


 

        一個賞心悅目的界面是一個程序給用戶的第一個映像,好的界面可以讓用戶更加容易上手使用。windows之所以能被個人用戶喜歡就是因為它的界面更加容易和用戶交互,只要用戶能識別文字,懂得點擊鼠標就能操作電腦;而linux之所以無法被廣大個人用戶使用的瓶頸就是圖形界面無法完成所有工作,需要命令配合才可以,這就把非專業用戶拒之門外了,想用就必須去學習命令。
        我們在使用shell寫一個程序的時候,如果想讓廣大的用戶都能使用,都能快速上手,那么好的交互界面就太重要了。我們可以使用多種方法開發好的、易交互的界面,常用的工具有:dialog、echo、printf等命令。
主要給大家介紹一個最簡單易用的命令:echo

 

1,echo命令介紹

功能:將內容輸出到默認設備

echo命令的功能是在顯示器上顯示一段文字一般起到一個提示的作用!

語法:echo [-ne] [字符串]

(默認輸入以后自動換行)

 

-n:不要換行

-e:激活轉義字符。使用-e選項時,若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出!

  • \a 發出警告聲;
  • \b 刪除前一個字符;
  • \c 最后不加上換行符號;
  • \f 換行但光標仍舊停留在原來的位置;
  • \n是換行且光標移至行首;
  • \r 光標移至行首,但不換行;
  • \t是插入tab空格
  • \v 與\f相同;
  • \\ 插入\字符;
  • \nnn 插入nnn(八進制)所代表的ASCII字符

 

[root@CentOs ~]# echo -e "\n\n\n"  (\n是換行)




[root@CentOs ~]# echo -e "\t\t\t\t heitui" (\t是插入tab空格)
                 heitui
[root@CentOs ~]#

 

 

2,顏色代碼

echo -e "\033[字背景顏色;文字顏色m字符串\033[0m"

例如: echo -e “\033[41;36m something here \033[0m”

其中41的位置代表底色, 36m的位置是代表字的顏色

1、字背景顏色和文字顏色之間是英文的

2、文字顏色后面有個m

3、字符串前后可以沒有空格,如果有的話,輸出也是同樣有空格

 

 

下面是相應的字和背景顏色,可以自己來嘗試找出不同顏色搭配

  例
  echo -e “\033[31m 紅色字 \033[0m”
  echo -e “\033[34m 黃色字 \033[0m”
  echo -e “\033[41;33m 紅底黃字 \033[0m”
  echo -e “\033[41;37m 紅底白字 \033[0m”
  
字顏色:30—–37
  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”

  
字背景顏色范圍:40—–47
  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”
  
最后面控制選項說明
  \033[0m 關閉所有屬性
  \033[1m 設置高亮度
  \033[4m 下划線
  \033[5m 閃爍
  \033[7m 反顯
  \033[8m 消隱

  \033[30m — \33[37m 

設置前景色
  \033[40m — \33[47m 設置背景色
  
  
  \033[nA 光標上移n行
  \033[nB 光標下移n行
  \033[nC 光標右移n行
  \033[nD 光標左移n行
  \033[y;xH設置光標位置
  \033[2J 清屏
  \033[K 清除從光標到行尾的內容
  \33[s 保存光標位置
  \033[u 恢復光標位置
  \033[?25l 隱藏光標
  \033[?25h 顯示光標

 

 

3,read命令

當腳本執行到read時,不再執行,等待用戶的輸入。回車符代表輸入結束

 

read命令選項:

 

 

-p:打印信息

 

 

 

-s(不回顯):不顯示輸入的內容

-t5(限定時間):5秒后不輸入會自動退出

-n6(輸入字符個數):只能輸入6位數字

 



 

 

 

 

 

 

 

 

解釋:

acc和pw相當於一個定位,把用戶輸入的指令存在acc和pw中,之后使用$把指令取出!

 

 

實戰:模擬一個centos的登錄頁面

 

#!/bin/bash

clear

echo "Centos Linux 7 (Core)"
echo -e "kernel `uname -r` an `uname -m\n`"

echo -n -e "$HOSTNAME Login: "
read  acc
read -s -p "Password:"
read  pw

 

解釋:

uname -a 顯示系統信息:
Linux CentOs 3.10.0-1160.59.1.el7.x86_64 #1 SMP Wed Feb 23 16:47:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linu
uname -m 顯示計算機類型:
x86_64
uname -n 顯示計算機名:
CentOs
uname -r 顯示操作系統發行編號:
3.10.0-1160.59.1.el7.x86_64
uname -v 顯示系統版本與時間:
#1 SMP Wed Feb 23 16:47:03 UTC 202
uname -s 顯示操作系統名稱:
Linux

 

 

 

 

 

 

 

 


免責聲明!

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



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