Shell 學習(二)

Shell 學習(二)

1 設置環境變量

1.1 基本語法

1)export 變量名=變量值 (功能描述:將shell變量輸出爲環境變量)

2)source 配置文件 (功能描述:讓修改後的配置信息立即生效)

3)echo $變量名 (功能描述:查詢環境變量的值)

我們來做個測試,在/etc/profile文件裏面新增一個環境變量

1.2 實踐

1) 在/etc/profile 文件中定義TOMCAT_HOME環境變量

#!/bin/bash
#定義一個自己的環境變量
TOMCAT_HOME=/opt/tomcat
export TOMCAT_HOME

2)查看環境變量TOMCAT_HOME的值

echo $TOMCAT_HOME

3)在另外一個shell程序中使用TOMCAT_HOME

#使用我們自定的環境變量
echo "tomcat_home=$TOMCAT_HOME"

#多行註釋 用法爲  :<<!   !

注意:在輸出TOMCAT_HOME 環境變量前,需要讓其生效

source /etc/profile

2 位置參數變量

2.1 介紹

當我們執行一個shell腳本時,如果希望獲取到命令行的參數信息,就可以使用到位置參數變量。比如: ./myshell.sh 100 200 ,這個就是一個執行shell的命令行,可以在myshell 腳本中獲取到參數信息

2.2 基本語法

  • $n (功能描述:n爲數字,$0代表命令本身,$1-$9 代表第一到第九個參數,十以上的 參數需要用大括號包含,比如${10})
  • $* (功能描述:這個變量代表命令行中所有的參數,$*把所有的參數看成一個整體)
  • $@ (功能描述:這個變量也代表命令行中所有的參數,$@ 把所有的參數區分對待)
  • $# (功能描述:這個代表代表命令行中所有參數的個數)

2.3 位置參數變量應用實例

案例:編寫一個shell腳本positionPara.sh ,在腳本中獲取到命令行的各個參數信息

#!/bin/bash
#獲取到各個參數
echo "$0 $1 $2"
echo "$*"
echo "$@"
echo "參數個數=$#"

執行

#賦予權限
chomd 744 ./positionPara.sh
./ positionPara.sh 30 60 

3 預定義變量

3.1 基本介紹

就是shell 設計者事先已經定義好的變量,可以直接在shell腳本中使用

3.2 基本語法

  • $$ (功能描述:當前進程的進程號(PID))
  • $! (功能描述:後臺運行的最後一個進程的進程號(PID))
  • $?(功能描述:最後一次執行的命令的返回狀態。如果這個變量的值爲0,證明上一個命令正確執行;如果這個變量的值爲非0(具體是哪個數,由命令自己來決定),則證明上一個命令執行不正確了)

3.3 應用實例

在一個shell腳本中簡單使用一下預定義變量

#!/bin/bash
echo "當前的進程號=$$"
#後臺的方式運行 myShell.sh
./myShell.sh &
echo "最後的進程號=$!"
echo "執行的值=$?"

4 運算符

4.1 基本介紹

如何在shell中進行各種運算操作

4.2 基本語法

1) “$((運算式))” 或“$[運算式]”

2) expr m + n

#注意expr 運算符間要有空格

3) expr m - n
4) expr \*,/,%  乘,除,取

應用實例

  • 案例1:計算(2+3)X 4 的值

    • $((運算式))
    #!/bin/bash
    #第一方式$()
    RESULT1=$(((2+3)*4))
    echo "result1=$RESULT1"

  • $[運算式]
#!/bin/bash
RESULT2=$[(2+3)*4]
echo "result2=$RESULT2"

  • expr
#!/bin/bash
TEMP=`expr 2 + 3`
RESULT3=`expr $TEMP \* 4`
echo "result=$RESULT3"

  • 案例2:請求出命令行的兩個參數[整數]的和
#!/bin/bash
SUM=$[$1+$2]
echo "SUM=$SUM"

5 條件判斷

判斷語句

5.1 基本語法

​ [ condition ](注意condition 前後要有空格)

​ #非空返回true,可使用$? 驗證(0爲true,>1 爲false)

5.2 應用實例

當[]這個裏面有數值的時候,則爲非空,爲真,就返回true。 []裏面沒有數值,就爲空,返回false

  • ​ [ atguigu ] 返回true

  • ​ [] 返回false
  • [ condition ] && echo OK || echo notok 條件滿足,執行後面的語句

5.3 常用判斷條件

1) 兩個整數的比較

= 字符串比較

-lt 小於(less than)

-le 小於等於

-eq 等於

-gt 大於(greater than)

-ge 大於等於

-ne 不等於

2)按照文件權限進行判斷

-r 有讀的權限 tips: 判斷是否有權限, 就這麼寫就行了[ -r 文件 ]

-w 有些的權限

-x 有執行的權限

3)按照文件類型進行判斷

-f 文件存在並且是一個常規的文件

-e 文件存在

-d 文件存在並非是一個目錄

5.4 應用實例

案例1:“ok”是否等於“ok”

判斷語句:

#!/bin/bash
if ["ok"="ok"]
then 
echo "等於"
fi

案例2:23是否大於22

判斷語句

#!/bin/bash
if[23 -gt 22]
then 
echo "大於"
fi

案例3:/root/shell/aaa.txt 目錄中的文件是否存在

判斷語句

#!/bin/bash
if [-e /root/shell/aaa.txt]
then 
echo "存在"
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章