歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

一些shell腳本練習

一些shell腳本練習   寫一個腳本: 1、設定變量FILE的值為/etc/passwd 2、依次向/etc/passwd中的每個用戶問好,並顯示對方的shell,形如:  Hello, root, your shell: /bin/bash 3、統計一共有多少個用戶     #!/bin/bash FILE="/etc/passwd" num=`wc -l < $FILE` echo "User count:$num" for i in `seq 1 $num`;do     Username=`head -$i $FILE |tail -1 | cut -d: -f1`     Shell=`head -$i $FILE | tail -1 | cut -d: -f7`     echo "Hello,$Username,your shell: $Shell" done    寫一個腳本: 1、添加10個用戶user1到user10,密碼同用戶名;統計這10個用戶的ID號之和;     #!/bin/bash for i in `seq 1 10`; do     useradd user$i     echo "user$i" | passwd --stdin user$i     userid=`grep "user$i" /etc/passwd | cut -d: -f3`     sumid=$[ $sumid + $userid ] done echo "ID COUNT:$sumid"   寫一個腳本,分別顯示當前系統上所有默認shell為bash的用戶和默認shell為/sbin/nologin的用戶,並統計各類shell下的用戶總數。顯示結果形如: BASH,3users,they are: root,redhat,gentoo   NOLOGIN, 2users, they are: bin,ftp     #!/bin/bash BASH_C=`grep '/bin/bash' /etc/passwd | wc -l` NOLOGIN_C=`grep '/sbin/nologin' /etc/passwd | wc -l` echo "BASH,$BASH_C'users',they are:" for i in `seq 1 $BASH_C`;do     BASH_N="$BASH_N`grep '/bin/bash' /etc/passwd | head -$i | tail -1 | cut -d: -f1`,"     done echo $BASH_N echo "NOLOGIN,$NOLOGIN_C'users',they are:" for i in `seq 1 $NOLOGIN_C`;do     NOLOGIN_N="$NOLOGIN_N`grep '/sbin/nologin' /etc/passwd | head -$i | tail -1 | cut -d: -f1`,"     done echo $NOLOGIN_N   寫一個腳本: 1) 顯示一個菜單給用戶: d|D) show disk usages. m|M) show memory usages. s|S) show swap usages. *) quit. 2) 當用戶給定選項後顯示相應的內容; 3) 當用戶選擇完成,顯示相應信息後,不退出;而讓用戶再一次選擇,再次顯示相應內容;除了用戶使用quit;     #!/bin/bash #創建函數s s(){ echo '---------------------------Options------------------------------' echo 'd|D) show disk usages.' echo 'm|M) show memory usages.' echo 's|S) show swap usages.' *) quit. #輸入一個選項參數S read -p 'Please input your select:' S } #調用函數s s #創建一個while循環,只要是選項是dmsDMS,則進入case,若不是,則直接while循環結束 while [[ $S == [dmsDMS] || $S == 'quit' || $S == * ]];do case $S in  [dD])     df -lh; [mM])     free -m -l | grep -v '^Swap';; [sS])     free -m -l | grep '^Swap';; quit)    exit;; *) echo '---------------------------Warning!------------------------------' echo 'Please input your correct select,eg:[dDmMsS|quit]' ;; esac s done    選項的使用     #!/bin/bash help(){     echo "-m memory"     echo "-s swap"       echo "-d disk space"      echo "-q quit" } help while getopts msdqh select do     case $select in     m) free -m -l | grep -v '^Swap';;     s) free -m -l | grep '^Swap';;     d) df -lh;;     q) exit;;     h)help;;     *)      echo "Please select help options -h ";;     esac done  
Copyright © Linux教程網 All Rights Reserved