-
例子:判斷用書輸入的是什么文件
#!/bin/bash
read -p "Please input a filename :" file
if [-z "$file" ]
#判斷file變量是否為空
then
echo " Error,please input a filename"
exit 1
#對于多分之判斷語句,如果第一個不成立,接著判斷第二個,所以這里要加exit,第一個都是空了,不成了了,直接讓他退出
elif [ ! -e "$file" ]
#判斷file的值是否存在 -e判斷文件是否存在,存在則為真
then
echo "Your input is not a file !"
exit 2
elif [ -f "$file" ]
#判斷file的值是否為普通文件,-f判斷文件是否存在,并且是否為普通 文件
then
echo "$file is a regulare file!"
elif[ -d "$file" ]
#判斷file的值是否為目錄文件,-d判斷文件是否存在,并且是否為目錄 文件
then
echo "file is a directory!'
else
echo "file is other file!"
fi
查看全部 -
#!/bin/bash/
#字符界面加減乘除計算器
read -t 30 -p "Please input num1:" num1
read -t 30-p "Please input num2:" num2
#通過read命令接收要計算的數(shù)值,并賦予變量num1和num2
read -t 30 -p "Please input a operator :" ope
#通過read命令接收要計算的符號,并賦予變量ope
if [-n "$num1" -a -n "num2" -a -n "$ope" ]
#第一層判斷,用來判斷num1和num2,ope中都有值 -a表示多條件判斷,都為真是才為真
then
test1=$(echo $num1 | sed 's/[0-9]//g']
test1=$(echo $num2 | sed 's/[0-9]//g']
#定義變量test1和test2的值為¥(命令)的結(jié)果
#后續(xù)sed命令 s表示替換,把0-9替換為空,g的意思是都替換,整個命令作用是把變量test1的值替換為空,如果能替換為空,證明num1的值是數(shù)字
#如果不能替換為空,證明num1的值為非數(shù)字。我們用這種方法判斷變量num1的值為數(shù)字,用同樣的方法測試test2
if [ -z "$test1" -a -z "$test2" ]
#第二層判斷,用來判斷num1和num2位數(shù)值,-z表示為空則返回真
#如果變量test1和test2為空,則證明num1和num2是數(shù)字
then
#如果test1和test2是數(shù)字,則執(zhí)行以下命令
if [ "$ope"=='+' ]
#第三層判斷用來確認(rèn)運(yùn)算符
#測試變量$ope中是什么運(yùn)算符
then
sum=$(($num1+$num2))
#如果是加號則執(zhí)行加法運(yùn)算
elif [ "$ope"=='-' ]
then
sum=(($num1-$num2))
#如果是減號則執(zhí)行減法運(yùn)算
elif [ "$ope"=='*' ]
then
sum=(($num1*$num2))
#如果是乘號則執(zhí)行乘法運(yùn)算
elif [ "$ope"=='/' ]
then
sum=(($num1/$num2))
#如果除號則執(zhí)行除法運(yùn)算、
else
echo "Please enter a valid symbol"
#如果運(yùn)算符不匹配,則提示輸入有效的符號
exit 10
#并退出程序。返回錯誤代碼 10
fi
else
#如果test1和test2不為空,說明tnum1和num2不是數(shù)字
echo "Please enter a valid value"
#提示輸入有效的數(shù)值
exit 11
#并退出程序。返回錯誤代碼 11
fi
else
echo "請輸入內(nèi)容,不能為空”
exit 12
#退出程序,犯會錯誤代碼12
#若輸入為空,則提示
fi
echo “$num1 $ope $num2 : $sum”
#輸出數(shù)值運(yùn)算的結(jié)果
#看返回值用 echo $?
查看全部 -
#!/bin/bash/
#字符界面加減乘除計算器
read -t 30 -p "Please input num1:" num1
read -t 30-p "Please input num2:" num2
#通過read命令接收要計算的數(shù)值,并賦予變量num1和num2
read -t 30 -p "Please input a operator :" ope
#通過read命令接收要計算的符號,并賦予變量ope
if [-n "$num1" -a -n "num2" -a -n "$ope" ]
#第一層判斷,用來判斷num1和num2,ope中都有值 -a表示多條件判斷,都為真是才為真
then
test1=$(echo $num1 | sed 's/[0-9]//g']
test1=$(echo $num2 | sed 's/[0-9]//g']
#定義變量test1和test2的值為¥(命令)的結(jié)果
#后續(xù)sed命令 s表示替換,把0-9替換為空,g的意思是都替換,整個命令作用是把變量test1的值替換為空,如果能替換為空,證明num1的值是數(shù)字
#如果不能替換為空,證明num1的值為非數(shù)字。我們用這種方法判斷變量num1的值為數(shù)字,用同樣的方法測試test2
if [ -z "$test1" -a -z "$test2" ]
#第二層判斷,用來判斷num1和num2位數(shù)值,-z表示為空則返回真
#如果變量test1和test2為空,則證明num1和num2是數(shù)字
then
#如果test1和test2是數(shù)字,則執(zhí)行以下命令
if [ "$ope"=='+' ]
#第三層判斷用來確認(rèn)運(yùn)算符
#測試變量$ope中是什么運(yùn)算符
then
sum=$(($num1+$num2))
#如果是加號則執(zhí)行加法運(yùn)算
elif [ "$ope"=='-' ]
then
sum=(($num1-$num2))
#如果是減號則執(zhí)行減法運(yùn)算
elif [ "$ope"=='*' ]
then
sum=(($num1*$num2))
#如果是乘號則執(zhí)行乘法運(yùn)算
elif [ "$ope"=='/' ]
then
sum=(($num1/$num2))
#如果除號則執(zhí)行除法運(yùn)算、
else
echo "Please enter a valid symbol"
#如果運(yùn)算符不匹配,則提示輸入有效的符號
exit 10
#并退出程序。返回錯誤代碼 10
fi
else
#如果test1和test2不為空,說明tnum1和num2不是數(shù)字
echo "Please enter a valid value"
#提示輸入有效的數(shù)值
exit 11
#并退出程序。返回錯誤代碼 11
fi
else
echo "請輸入內(nèi)容,不能為空”
exit 12
#退出程序,犯會錯誤代碼12
#若輸入為空,則提示
fi
echo “$num1 $ope $num2 : $sum”
#輸出數(shù)值運(yùn)算的結(jié)果
#看返回值用 echo $?
查看全部 -
寫一個計算器腳本
查看全部 -
例子:判斷apache是否啟動
查看全部 -
ps aux 累死任務(wù)管理器,查看當(dāng)前正在運(yùn)行的程序
查看全部 -
例子3:? 輸入一個字符串,判斷是不是目錄
#!/bin/bash
read -t 30 -p "Please input a dir:" dir
if [-d "$dir" ]
then
echo "shi mu lu"
else
echo "no no no"
fi
查看全部 -
例子2:
#/bin/bash/
rate=$(df -h | grep "sda5" | awk '{print $5}' | cut -d "%" -f1)
if [$rate -ge 80 ]
then
echo "warning"
fi
df -h查看分區(qū),從中用grep行查詢找出有sda5的那一行,因為這里是用空格作為分隔符,所以不能用cut,用awk print找到第5列,這時找到11%,然后%作為分隔符,列查詢第一列找到11,賦值給rate,然后rate 用 -ge判斷是不是大于80,若大于,則輸出警告
查看全部 -
例子:
#/bin/bash
test=$(env | grep USER | cut -d "=" f 2) //先執(zhí)行env命令,然后用grep從中找到USER,在列查詢用=作為分隔符,選取第二列,把這個值賦值給test
if [ "$test"=="root" ]?
?then
echo "dang qian shi root"
//判斷test值是否和root相等,相等則輸出“...”
fi
查看全部 -
多重條件判斷
查看全部 -
記得加“”
查看全部 -
按照文件權(quán)限進(jìn)行判斷
查看全部 -
按照文件類型判斷
查看全部 -
判斷文件是否存在
查看全部 -
sed 復(fù)習(xí)?
sed ‘[操作方式]/[舊字符]/[新字符]/g’
#/g????替換所有的“舊字符”
sed ‘s/[0-9]//g’test.txt?????#把所有的數(shù)字替換為空。
查看全部
舉報