shell指令碼基本應用

2021-09-24 18:46:46 字數 2725 閱讀 1284

chmod +x hello.sh         #給檔案增加執行許可權

./hello.sh                #執行指令碼

sh hello.sh        #以sh執行指令碼

bash hello.sh      #以bash執行指令碼

source hello.sh  #以source執行指令碼,該指令碼檔案可以無"執行許可權"

if有三種表示式:1.if … fi語句  2.if … else … fi 語句  3.if … elif … else … fi 語句

1.if ... fi語句

示例:#!/bin/bash

a=50

b=100

if [ $a == $b ] //expression和方括號之間必須有空格。否則會有語法錯誤

then

echo "a == b" //expression為真執行

fi2.if … else … fi語句

示例:#!/bin/bash

a=50

b=100

if [ $a == $b ]

then

echo "a == b"

else

echo "a! = b"

fi3.if … elif …fi語句

示例:#!/bin/bash

a=50

b=100

if [ $a == $b ]

then

echo "a == b"

elif [ $a -gt $b ] //-gt是否大於

then

echo "a > b"

elif [ $a -lt $b ] //-lt是否小於

then

echo "a < b"

else

echo "none of the condition "

fi

1.while語句

示例:#!/bin/bash

a=500 //變數定義

while [ $a -gt 1 ] //判斷條件為真一直執行

doecho "this is the $a testing"

sleep 1s //暫停一秒

a=`expr $a - 1` //expr運算子間要有空格,並且整條語句要在反引號內 + - * / %

done //結束標記

2.for語句

示例1:

#!/bin/bash

for((i=1;i<=10;i++));

do

echo $(expr $i \* 3 + 1);

done

示例2:

#!/bin/bash

for 變數 in 列表

do echo ` `

done

運算子:+  -  *  /  %  =   ==   !=  跟c語言運算子是一樣,使用`expr $a - $b` 進行運算 ,expr運算子間要有空格

關係運算子

數值比較:-eq(是否等於)、-ge(是否大於或等於)、 -gt(是否大於)、-le(是否小於或等於)、 -lt (是否小於)、-ne(是否不等於),條件成立,則返回ture

關係運算子只支援數字,不支援字串。除非字串的值是數字。

布林運算子

!非運算子:條件表示式為true則返回false

-o或運算子:乙個表示式為true就為true

-a與運算子:兩個表示式都為true才為true

字串運算子

字串使用雙引號「」

=:相等返回true

!= :不相等返回true

-z:檢測長度是否為0,為0返回true

-n:檢測長度是否為0,不為0返回true

str:檢測字串是否為空,不為空返回true

檔案測試運算子

判斷檔案是否存在

示例:#!/bin/bash

# first file

if [ ! -e "/usr/local/first" ] ;

then

touch /usr/local/first

fi

case … esac 是shell的分支語句

case工作方式: 取值後面必須為關鍵字 in ,每一模式必須以右括號結束。取值可以為變數或者常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;

取值將檢測匹配的每乙個模式,一旦模式匹配,則執行完匹配模式相應的內容後不再繼續其他模式。如果無一匹配模式,使用 * 捕獲該值。在執行相對應內容。

1.case語句

示例:#!/bin/bash

case $1 in

-a) echo "f"

;;-b) echo "d"

;;*) echo "n"

;;esac

執行:./xx.sh -a

顯示:f

待續。。。。。。。。。

Shell指令碼應用

shell script shell指令碼與windows dos下的批處理相似,也就是用各類命令預先放入到乙個檔案中,方便一次性執行的乙個程式檔案,主要是方便管理員進行設定或者管理用的。但是它比windows下的批處理更強大,比用其他程式設計程式編輯的程式效率更高,它使用了linux unix下的...

shell指令碼應用(四)

shell環境根據命令執行後的返回狀態值 來判斷是否執行成功,當返回值為0是表示成功,否則 非0值 表示失敗或者異常。使用專門的測試工具 test命令,可以對特定條件進行測試,並根據返回值來判斷條件是否成立 返回值為0時表示條件成立 使用test測試命令時,包括以下兩種形式。test 條件表示式 或...

Shell指令碼應用(三)

一 使用for語句應用示列 1 1 根據姓名列表批量新增使用者 批量新增使用者的指令碼 root centos01 vim uaddfor.sh bin bash ulist cat root users.txt for uname in ulist douseradd uname echo 123...