Shell指令碼程式設計 在指令碼中新增顏色(八)

2021-09-07 15:38:07 字數 4102 閱讀 5580

shell指令碼選單的核心是case命令,case命令根據使用者在選單中選擇的字母執行特定的命令。

(1)建立選單布局

[root@ceph01 menu]# cat menu.sh 

clear

echo

echo -e "\t\t\tsys admin menu\n"

echo -e "\t1. display disk space"

echo -e "\t2. display logged on users"

echo -e "\t3. display memory usage"

echo -e "\t0. exit menu\n\n"

echo -en "\t\tenter option: "

執行指令碼:

(2)建立選單函式

function menu
(3)新增選單邏輯

menu

case $option in

0) break ;;

1) diskspace ;;

2) whoseon ;;

*) clear

echo "sorry, wrong selection";;

esac

(4)組合

[root@ceph01 menu]# cat menu.sh 

#!/bin/bash

# ****** script menu

function diskspace

function whoseon

function memusage

function menu

while [ 1 ]

do menu

case $option in

0) break ;;

1) diskspace ;;

2) whoseon ;;

3) memusage ;;

*) clear

echo "sorry, wrong selection";;

esac

echo -en "\n\n\t\t\thit any key to continue"

read -n 1 line

done

clear

(5)使用select命令select命令允許從單命令列建立選單,然後獲取輸入的答案並自動處理它。select命令的格式是:

select variable in list

do commands

done

[root@ceph01 menu]# cat menu-select.sh 

#!/bin/bash

# using select in the menu

function diskspace

function whoseon

function memusage

ps3="enter option: "

select option in "display disk space" "display logged on users" "display memory usage" "exit program"

do case $option in

"exit program")

break ;;

"display disk space")

diskspace ;;

"display logged on users")

whoseon ;;

"display memory usage")

memusage ;;

*) clear

echo "sorry, wrong selection";;

esac

done

clear

[root@ceph01 menu]# ./menu-select.sh

1) display disk space 3) display memory usage

2) display logged on users 4) exit program

enter option:

(1)ansi轉義碼ansi轉義碼以控制序列指示器開頭,後面跟表示要在顯示器上執行的操作的資料。

sge轉義碼的格式為:

csin[;k]m

-m代表sgr轉義碼

n和k引數定義所使用的顯示控制

顯示控制引數有3類:

效果控制**

前景色控制**

背景色控制**

將顯示設定為使用傾斜的字型:

csi3m

將顯示設定為使用傾斜和閃亮:

csi3;5m

指定白色前景:

csi37m

(2)顯示ansi轉義碼ctrl + v  ; esc鍵

使用ansi轉義控制碼進行測試:

[root@ceph01 menu]# echo ^[[41mthis is a test

this is a test

[root@ceph01 menu]#

[root@ceph01 menu]# echo ^[[41mthis is a test^[[0m

this is a test

[root@ceph01 menu]#

(3)在指令碼中使用顏色

[root@ceph01 menu]# cat menu-color.sh 

#!/bin/bash

# menu using colors

function diskspace

function whoseon

function memusage

function menu

echo "^[[44;33m"

while [ 1 ]

do menu

case $option in

0) break ;;

1) diskspace ;;

2) whoseon ;;

3) memusage ;;

*) clear

echo -e "^[[5m\t\t\tsorry, wrong selection^[[0m^[[44;33m";;

esac

echo -en "\n\n\t\t\thit any key to comtinue"

read -n 1 line

done

echo "^[[0m"

clear

(1)dialog軟體包dialog命令使用命令列引數確定生成的windows小部件的型別,小部件(widget)是一類windows元素的dialog軟體包術語。

要在命令列上具體指定乙個特定的小部件,需要使用雙破折號格式:

dialog --widget parameters
msgbox小部件

(未完待續!!!!!!)

Makefile中新增shell指令碼

makefile中可以加入shell指令碼語言,但是編寫形式不一樣,makefile中都是以行為單位的,所以必須將makefile中的shell指令碼通過 連線成一行。例如 if d hisi home src sdk modify hidrv v0a1 source osdrv kernel li...

shell指令碼 在檔案中新增標頭檔案

塊 bash bin filename inbash.sh 檢視檔案是否含有 count grep 1 wc l if 0 then 定界符 eof後的檔案前面不能有空格 cat 1 eof bin bash author date date y m d description eoffi除錯指令碼...

Shell 指令碼程式設計

1 執行shell的方法 指定shell bin sh 由sh執行指令碼 指令碼總是由sh解釋 顯示呼叫shell sh scriptname 在當前shell中執行指令碼 profile profile是可執行的 ksh profile profile是不可執行的 改變當前的執行環境責應輸入.pr...