腳本01.sh:
給定一個文件:
如果是一個普通文件,就顯示之;
如果是一個目錄,亦顯示之;
否則,此爲無法識別之文件;
#!/bin/bash # read -p "Enter your file: " FILE if [ ! -e $FILE ];then echo "no such file." else if [ -f $FILE ];then echo "common file." elif [ -d $FILE ];then echo "directory." else echo "unknow file." fi fi
腳本02.sh:
能接受一個參數(文件路徑)
判定:此參數如果是一個存在的文件,就顯示“OK.”;否則就顯示"No such file."
#!/bin/bash # read -p "Enter your file name :" NAME if [ -e $FILE ];then echo "OK." else echo "no such file." fi
腳本03.sh:
給腳本傳遞兩個參數(整數);
顯示此兩者之和,之乘積;
#!/bin/bash # if [ $# != 2 ];then echo "unknow commend" else echo "SUM=$[$1+$2]" echo "SUM=$[$1*$2]" fi
腳本04.sh:
寫一個腳本完成一下任務:
1、使用一個變量保存一個用戶名;
2、刪除此變量中的用戶,且一併刪除其主目錄;
3、顯示“用戶刪除完成”類的信息;
#!/bin/bash # read -p "Enter your username :" NAME id $NAME &>/dev/null if [ $? == 0 ];then userdel -r $NAME &> /dev/null echo "delete user success." else echo "no such user" fi
腳本05.sh:
傳遞一個參數(單字符就行)給腳本,如參數爲q、Q、quit或Quit,就退出腳本;否則,就顯示用戶的參數;
#!/bin/bash # read -p "Please input your choice q|Q for quit any to continue :" CHOICE if [ $CHOICE == 'q' ];then exit 0 elif [ $CHOICE == 'Q' ];then exit 0 else echo "This is your input: $CHOICI" fi
腳本06.sh:
傳遞三個參數給腳本,第一個爲整數,第二個爲算術運算符,第三個爲整數,將計算結果顯示出來,要求保留兩位精度。
#!/bin/bash # if [[ $1 =~ ^[0-9]+$ && $2 =~ ^[+,-,*,/]+$ && $3 =~ ^[0-9]+$ ]];then echo "scale=2;$1$2$3" | bc else echo "Unknow." fi
筆記:變量的匹配做if的條件需要用雙“[]”,“=~”是匹配的意思,“+”前邊的字符出現至少一次。
腳本07.sh:
傳遞3個參數給腳本,參數均爲用戶名。將此些用戶的帳號信息提取出來後放置於/tmp/testusers.txt文件中,並要求每一行行首有行號。
#!/bin/bash # if [ $# != 3 ];then echo "please enter three usernames!" else rm -f ./testuser.txt &> /dev/null grep ^$1 /etc/passwd &> /dev/null && echo "1 `grep ^$1 /etc/passwd`" >> ./testuser.txt || echo "1 there is no user $1" >> ./testuser.txt grep ^$2 /etc/passwd &> /dev/null && echo "2 `grep $2 /etc/passwd`" >> ./testuser.txt || echo "2 there is no user $2" >> ./testuser.txt grep ^$3 /etc/passwd &> /dev/null && echo "3 `grep $3 /etc/passwd`" >> ./testuser.txt || echo "3 there is no user $3" >> ./testuser.txt fi
腳本08.sh:
判斷當前主機的CPU生產商,其信息在/proc/cpuinfo文件中vendor id一行中。
如果其生產商爲AuthenticAMD,就顯示其爲AMD公司;
如果其生產商爲GenuineIntel,就顯示其爲Intel公司;
否則,就說其爲非主流公司;
#!/bin/bash # STRING=`greo ^vendor /proc/cpuinfo | cut -d ":" -f 2` if [ $STRING == GenuineIntel ];then echo "Intel." elif [ $STRING == AuthenticAMD ];then echo "AMD." else echo "others" fi
腳本09.sh:
給腳本傳遞三個整數,判斷其中的最大數和最小數,並顯示出來。
#!/bin/bash # if [ $# != 3 ];then echo "please enter three number." else if [ $1 -gt $2 ];then MAX=$1 MIN=$2 else MAX=$2 MIN=$1 fi if [ $MAX -lt $3 ];then MAX=$3 fi if [ $MIN -gt $3 ];then MIN=$3 fi echo MAX=$MAX echo MIN=$MIN fi