shell文章系列-shell腳本第十六講
同學們,歡迎來到馬哥教育官網,今天我們一起來學習一下shell文章系列中的shell腳本第十六講的內容!
1、if..else..
if語句用來實現程序的判斷,使用的語法是如下所示:
bash if condition then command else command fi
當if語句后面的條件為真時,那么執(zhí)行的是then后面的那個command命令,當if語句后面的條件為假時,那么執(zhí)行的是else后面的那個command命令。
根據以前我們講的那些shell基礎,我們再來結合if語句實現一個文件的判斷。
我們寫一個檢測文件的三個讀、寫、執(zhí)行權限的腳本
!/bin/bash
if [ -z $1 ]; then echo "請輸入一個文件" exit fi if [ -r $1 ]; then echo "this file can read" else echo "this file is not readable" fi if [ -w $1 ];then echo "this file can write" else echo "this file is not writable" fi if [ -x $1 ];then echo "this file can execute" else echo "this file is not executable" fi ```
現在我們創(chuàng)建一個文本文件a.py,然后僅僅賦予此文件一個r權限來看看。
bash [Mike@localhost tmp]$ ll a.py -r--r--r-- 1 root root 429 Apr 7 11:38 a.py [Mike@localhost tmp]$ ./FileCheck.sh a.py this file can read this file is not writable this file is not executable
看到效果了嗎?當我們只給文件a.py一個讀r的權限時,那么檢測這個文件就告訴我們文件可以讀,但是不能寫,也不能執(zhí)行。這就是這個腳本的功能作用。
2、檢測當前用戶是否是管理員root,如果是就安裝軟件
bash
!/bin/bash
檢測本機當前用戶是否為超級管理員,如果是管理員,則使用 yum 安裝 nginx,如果不
是,則提示您非管理員(使用字串對比版本)
if [[ "$USER" == "root" ]] then yum install nginx else echo "您不是管理員,沒有權限安裝軟件" fi 我們使用到了[[ ]]這個判斷符,我們說最好是引用變量時加上雙引號。3、排序腳本給系統(tǒng)交互式輸入三個數值,然后按照從小到大的順序進行排序。這里我們使用到了read -p命令,表示交互式輸入一個變量值,并賦值給變量,比如:
bash [root@chaofeng tmp]# echo $NAME
[root@chaofeng tmp]
# read -p "請輸入你得名字: " NAME 請輸入你得名字: Mike [root@chaofeng tmp]# echo $NAME Mike NAME就是變量,把輸入的名字Mike賦值給變量NAME,那么在腳本中如何使用呢?
bash
!/bin/bash
依次提示用戶輸入 3 個整數,腳本根據數字大小依次排序輸出 3 個數字
read -p "請輸入第一個整數:" num1 read -p "請輸入第二個整數:" num2 read -p "請輸入第三個整數:" num3 tmp=0 if [ $num1 -gt $num2 ];then?tmp=$num1 num1=$num2 num2=$tmp fi if [ $num1 -gt $num3 ];then?tmp=$num1 num1=$num3 num3=$tmp fi if [ $num2 -gt $num3 ];then tmp=$num2 num2=$num3 num3=$tmp fi echo "排序后數據(從小到大)為:$num1,$num2,$num3" ```
現在我們執(zhí)行一下:
bash [root@chaofeng tmp]# ./sort.sh 請輸入第一個整數:11 請輸入第二個整數:22 請輸入第三個整數:18 排序后數據(從小到大)為:11,18,22
好啦!今天的分享到這里就結束了。希望大家持續(xù)關注馬哥教育官網,每天都會有大量優(yōu)質內容與大家分享!
聲明:文章轉載于網絡,版權歸原作者所有!