指令碼編寫學習

2021-10-06 14:31:15 字數 3016 閱讀 2368

1.

if [ true ]; then

echo "有值"

else

echo "沒有值"

fi2.

shell=$1

xshell=$2

if [ $ ];then

echo "$ $"

else

echo "我走了"   

fi3.

a=$1

b=$2

[ -z $a ] && echo "please \$1 number1" && exit 1

[ -z $b ] && echo "please \$2 number2" && exit 2

[ ! $# -eq 2 ] && echo "--please num1 num2" && exit 3

# $#傳遞到指令碼的引數個數

# -eq相當於=, -ne相當於不等於, -ge >= , -gt >, -le <=, -lt <

echo "$a + $b = $(($a+$b))"

echo "$a - $b = $(($a - $b))"

echo "$a * $b = $(($a*$b))"

echo "$a / $b = $(($a/$b))"

if [ $a -eq $b ];then

echo "這兩個引數相等"

else

echo "這兩個引數不相等"

fifor animal in dog cat bird

doecho "there is $..."

done

4.

read -p "please input a num:" num

for(( i=1; i<$num; i=i+1 ))

dosum=$(($sum+$i))

done

echo "the result of 1+2+3+...$num is:$sum"

5.

read -p "please input your first name:" firstname #提示使用者輸入,末尾的first為變數名

read -p "please input your last name:" lastname 

echo -e "/nyour full name is :$firstname $lastname" #結果由螢幕輸出

6.

echo -e "please input two numbers\n"

read -p "the first number is:" num1#提示使用者輸入,末尾的num1為變數名

read -p "the second number is:" num2

product=$(($num1*$num2)) 

sum=$(($num1+$num2)) 

red=$(($num1-$num2)) 

div=$(($num1/$num2)) 

echo -e "$num1 x $num2 = $product"

echo -e "$num1 + $num2 = $sum"

echo -e "$num1 - $num2 = $red"

echo -e "$num1 ÷ $num2 = $div"

關於某個檔名的檔案型別判斷,如 test -e filename 

-e:該檔名是否存在 

-f:該檔名是否存在且為檔案 

-d:該檔名是否存在且為目錄 

-b:該檔名是否存在且為塊裝置檔案 

-c:該檔名是否存在且為字元裝置檔案 

-s:該檔名是否存在且為socket檔案(大寫s) 

-p:該檔名是否存在且為fifo檔案 

-l:該檔名是否存在且為鏈結檔案

關於檔案的許可權檢測,如test -r filename 

-r:該檔名是否存在且具有「可讀」許可權 

-w:該檔名是否存在且具有「可寫」許可權 

-x:該檔名是否存在且具有「可執行」許可權 

-u:該檔名是否存在且具有「suid」屬性 

-g:該檔名是否存在且具有「sgid」屬性 

-k:該檔名是否存在且具有「sticky bit」屬性 

-s:該檔名是否存在且為「非空白檔案」(小寫s)

兩個檔案之間的比較,如:test file1 -nt file2 

-nt:newer than,判斷file1是否比file2新 

-ot:older than,判斷file1是否比file2舊 

-ef:判斷file1與file2是否為同一檔案,可用在判斷hard link的判定上。主要意義在於判定兩個檔案是否指向統一個inode

關於兩個整數之間的判定,如test num1 eq num2 

-eq:equal,num1等於num2 

-ne:not equal,num1不等於num2 

-gt:greater than,num1大於num2 

-lt:less than,num1小於num2 

-ge:great equal,num1大於等於num2 

-le:less equal,num1小於等於num2

判定字串的資料 

test -z string:判定字串是否為0,若string為空字串,則為true 

test -n string:判定字串是否為非零,若string為空字串,則為false

多重條件判定,例如:test -r filename -a -x filename

-a:兩個條件同時成立!例如 test -r file -a -xfile,則file同時具有 r 與 x 許可權時,才回傳true

-o:任何乙個條件成立!例如 test -r file -o -x file,則file具有 r 或者 x 許可權時,才回傳true

!:反向狀態!如test !-x file,當file不具有x時,回傳true

學習 shell 編寫基本指令碼

一般而言,shell 會通過 path 變數來查詢命令,如果要執行使用者編寫的指令碼 未新增進 path 路徑 還需兩步操作 使用read命令讀取來自鍵盤輸入的變數。該變數常用於 shell script 的編寫當中,用於和使用者互動。read pt variable p prompt 後面可以跟提...

批處理指令碼編寫學習

結束程序 wmic process handle pid delete wmic process handle pid call terminate 結束svchost.exe程序,路徑為非c windows system32 svchost.exe的 wmic process where name...

jmeter 編寫指令碼學習筆記 備忘

web持續新增 前言 1.token就是令牌,比如你授權 登入 乙個程式時,他就是個依據,判斷你是否已經授權該軟體 也叫關聯 2.cookie就是寫在客戶端的乙個txt檔案,裡面包括你登入資訊之類的,這樣你下次在登入某個 就會自動呼叫cookie自動登入使用者名稱 3.session和cookie差...