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...