①建立選單指令碼的小技巧
要在echo命令中包含字元(例如製表符和換行符),必須使用-e選項。
echo -en將顯示該行,而不再行為新增換行符。
在read命令中使用-n選項僅獲取乙個字元,這樣允許使用者輸入乙個數字而不必再按回車。
②簡單的例子
一下例子實現了乙個簡單的獲取linux系統管理資訊。
funcation diskpace
funcation whoseon
funcation memusage
funcation menu
while [ 1 ]
do menu
case
$option
in0)
break;;
1)diskspace;;
2)whoseon;;
3)memusage;;
*)clear
echo
"error!!"
esac
echo -en "\n\n\t\t\thit any key to continue"
read -n 1 line
done
clear
③使用select命令
在shell中我們可以使用select命令,來更便利的建立選單選項,其語法規則如下:
select
variable
inlist
do commands
done
引數列表使用空格隔開的構建選單的文字項列表,然後選擇乙個特殊提示符,由ps3環境變數定義。
我們將上面那個例子使用select進行改寫:
funcation diskpace
funcation whoseon
funcation memusage
ps3="enter option: "
select option in
"display disk space"
"display logged on users"
"display memory usage"
"enter option"
docase
$option
in"enter option")
break;;
"display disk space")
diskspace;;
"display logged on users")
whoseon;;
"display memory usage")
memusage;;
*)clear
echo "error!!"
esac
done
clear
使用select命令時,要記住:儲存在變數中的結果值是整個文字字串,而不是與該選單項關聯的數字。文字字串才是case語句中比較的內容。
①ansi轉義碼
要控制顯示格式,必須使用選擇圖形再現轉義碼。sge轉義碼的格式為:
csin
[;k]
m
效果控制**從0~8
顏色控制**從0~7,其中設定前景顏色使用3開頭的乙個兩位數,第二位為所需要的顏色**,設定背景顏色使用4開頭的兩位數,同樣第二位數字表示具體顏色。
**描述
**描述0黑色
4藍色1紅色
5洋紅色2綠色
6青色3黃色
7白色②顯示ansi轉義碼
使用ctrl-v組合件,後跟esc建,字元^[出現。
例如:
$ echo ^[[41mthis is a test^[[00m #輸出後恢復原來的顏色方案
$ echo
"^[[33;41mthis is a test^[[00m"
#使用兩個轉移控制時,用雙引號引起來
①初識dialog
使用dialog軟體包可以很方便地將對話方塊合併到shell指令碼中來與指令碼使用者進行互動。
命令格式:
dialog--
widget
parameters
其中widget為下表的小部件名稱,parameters為定義的視窗不見大小。
小部件描述
calendar
日曆inputbox
文字輸入框
menu
顯示一系列可供選擇的選項
msgbox
顯示訊息
texbox
在滾動的視窗中顯示檔案中的文字
yesno
提供乙個含有yes/no按鈕的簡單訊息……
舉個例子:
關於dialog的用法各種資料中寫的十分詳細,在這裡只是做乙個簡單的認識,就不再贅述了。
②在指令碼中使用dialog命令
需要遵循兩點:
★如果cancel或者no按鈕可用,請檢查dialog命令的退出狀態。
★重定向stderr以獲取輸出值。
③獲取圖形
我們還可以使用kdialog和zenity軟體包,它們分別為kde和gnome桌面提供圖形化的視窗小部件。其操作與dialog有部分類似,在這就不再贅述,特別注意的是kdialog和zenity將標籤值傳送到stdout中,而dialog將標籤值傳送到stderr中。
大夏shell程式設計學習筆記(1)
linux標準檔案描述符 檔案描述符 縮寫描述 0stdin 標準輸入 1stdout 標準輸出 2stderr 標準錯誤 重定向錯誤 ls al test 2 test4 僅重定向錯誤 ls al test test4 所有輸出都傳送到同乙個位置,預設錯誤訊息優先於標準輸出 exec 3 關閉檔案...
大夏shell程式設計學習筆記(5)
今天終於要開始學習我個人覺得很頭疼的一部分內容了,正規表示式在我看來永遠都是那些程式設計很厲害的高中能夠玩轉的,為了提高自己的逼格,我也不得不觸碰一下這個比較煩人的東西,也可能是我的數學思維能力比較弱的原因,每次一接觸到正規表示式就頭疼。我特意找了一本可以推薦給大家的參考書,自己也還在研習中,至於學...
SHELL學習筆記(3)
文字處理工具 1 排序文字 sort sort lines of text files b,ignore leading blanks ignore leading blanks d,dictionary order consider only blanks and alphanumeric cha...