bash腳本編程實例
-
1.寫一個腳本
- 能接受四個參數:start、stop、restart、status
- start:輸出“starting腳本名finished.”
- restart:輸出“restarting腳本名finished.”
- stop:輸出“stoping腳本名finished.”
- status:輸出“status腳本名finished.”
-
其他任意參數,均報錯退出
#!/bin/bash case $1 in start) echo "starting ${0} finished." ;; stop) echo "stoping ${0} finished." ;; restart) echo "restarting ${0} finished." ;; status) echo "status ${0} finished." ;; *) echo "error input." exit 1 ;; esac
-
2.寫一個腳本,判斷給定的用戶是否登錄了當前系統
- 如果登錄了,則顯示用戶登錄,腳本終止
-
每三秒鐘,查看一次用戶是否登錄
#!/bin/bash if [ $# -eq 0 ];then echo "there is no username inputing." exit 1 fi while true;do if id $1 &> /dev/null;then user=$(who|grep "^$1"|cut -d' ' -f1) if [[ $user == $1 ]];then echo "$1 has logined." break else sleep 3 fi else echo "there is no user like $1." exit 2 fi done
-
3.寫一個腳本,顯示用戶選定要查看的信息
- cpu)display cpu info
- mem)display memory info
- disk)display disk info
- quit)quit
-
非此四項選擇,則提示錯誤,并要求用戶重新選擇,直到其給出正確的選擇為止
#!/bin/bash cat << EOF cpu)display cpu info mem)display memory info disk)display disk info quit)quit EOF read -p "please input:" ops while true;do if [ $ops != "cpu" -a $ops != "mem" -a $ops != "disk" -a ops != "quit" ];then read -p "please input again:" ops else break fi done case $ops in cpu) lscpu ;; mem) free -m ;; disk) fdisk -l ;; quit) exit 0 ;; esac
-
4.寫一個腳本
- 用函數實現返回一個用戶的ID和SHELL;用戶名通過參數傳遞而來
- 提示用戶輸入一個用戶名或者輸入“quit”退出
- 當輸入的是用戶名,則調用函數顯示用戶信息
-
當用戶輸入quit,則退出腳本,進一步地,顯示鍵入的用戶相關信息后,再次提醒輸出用戶名或者quit
#!/bin/bash userinfo(){ if [ -z $1 ];then return 1 elif id $param &>> /dev/null;then echo "$1 ID is $(id -u $1)." echo "$1 shell is $(grep "^$1" /etc/passwd|cut -d: -f7)" else return 1 fi } while true;do read -p "please input a username or quit:" param if [[ $param == "quit" ]];then exit 0 else userinfo $param [ $? -eq 1 ]&&echo "no user named $1." fi done
原創文章,作者:N27_xiaoni,如若轉載,請注明出處:http://www.www58058.com/85821
一開始的內容比較基礎,但是非常重要,這篇博客整理的很不錯,再接再勵。