腳本練習-2

腳本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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章