Bash shell - 2
生活随笔
收集整理的這篇文章主要介紹了
Bash shell - 2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Bash 腳本結構化
1 ? if-then語句 2 ○ bash將會運行if后面的命令,如果該命令運行結束的退出碼是0(運行成功),執行then部分的命令 3 ○ fi語句表示if語句到此結束 4 ○ 在then后面可以使用多條命令(命令塊),需要縮進 5 ○ if-then-else語句 6 § 當if后命令返回的退出碼為0,執行then后命令,不為0,執行else部分命令 7 § else也可以包含多條命令 8 ? 嵌套if 9 ○ 可以使用elif語句代替嵌套的if-then語句讓命令更清晰 10 ○ 在elif語句中,緊跟其后的else語句術語elif代碼塊,它們不屬于之前的if-then代碼塊 11 ? test命令 12 ○ 數值,字符串,文件比較 13 ○ 數值比較 14 n1 -eq n2 檢查 n1 是否與 n2 相等 15 n1 -ge n2 檢查 n1 是否大于或等于 n2 16 n1 -gt n2 檢查 n1 是否大于 n2 17 n1 -le n2 檢查 n1 是否小于或等于 n2 18 n1 -lt n2 檢查 n1 是否小于 n2 19 n1 -ne n2 檢查 n1 是否不等于 n2 20 § 不能比較浮點數 21 ○ 字符串比較 22 str1 = str2 檢查 str1 是否和 str2 相同 23 str1 != str2 檢查 str1 是否和 str2 不同 24 str1 < str2 檢查 str1 是否比 str2 小 25 str1 > str2 檢查 str1 是否比 str2 大 26 -n str1 檢查 str1 的長度是否非0 27 -z str1 檢查 str1 的長度是否為0 28 § 字符串相等性 29 □ 測試大于或小于時,在大于號&&小于號前加上反斜杠,否則會被bash當成重定向符 30 □ 在比較測試中,大寫字母被認為小于小寫字母 31 □ -n判斷字符串長度非0,-z判斷字符串長度為0 32 ○ 文件比較 33 -d file 檢查 file 是否存在并是一個目錄 34 -e file 檢查 file 是否存在 35 -f file 檢查 file 是否存在并是一個文件 36 -r file 檢查 file 是否存在并可讀 37 -s file 檢查 file 是否存在并非空 38 -w file 檢查 file 是否存在并可寫 39 -x file 檢查 file 是否存在并可執行 40 -O file 檢查 file 是否存在并屬當前用戶所有 41 -G file 檢查 file 是否存在并且默認組與當前用戶相同 42 file1 -nt file2 檢查 file1 是否比 file2 新 43 file1 -ot file2 檢查 file1 是否比 file2 舊 44 ? 復合條件測試 45 ○ &&和|| 46 ? if-then高級特性 47 ○ 雙括號命令 48 § ((expression)) #expression可以是任意的標準數學運算符或標準表達式 49 val++ 后增 50 val-- 后減 51 ++val 先增 52 --val 先減 53 ! 邏輯求反 54 ~ 位求反 55 ** 冪運算 56 << 左位移 57 >> 右位移 58 & 位布爾和 59 | 位布爾或 60 && 邏輯和 61 || 邏輯或 62 § 注意,雙括號中的數學運算符不需要轉義 63 ○ 雙方括號 64 § [[expression]] #模式匹配 65 § 匹配模式支持正則表達式 66 ? case語句 67 ○ 代替多個if-then嵌套 68 ○ case命令采用列表格式檢查一個變量的多個值 69 ○ *號會捕獲所有與已知模式不匹配的值 70 ? for命令,列表迭代,類似Python的for循環 71 for var in list 72 do 73 commmands(多條命令) 74 done 75 ○ 除非手動修改,var會保持最后一次迭代的值,直到腳本結束 76 ? 從命令讀取值 77 ○ 使用命令的輸出作為變量 78 ○ 將文件的路徑,名稱賦值給變量 79 ? 更改字符段分分隔符 80 ○ 默認分隔符 空行,制表符,換行符 81 ○ 臨時改變環境變量IFS的值 82 ○ 指定多個分隔符,只需要在給IFS賦值時將各個分隔符串起來 83 ? 用通配符讀取目錄 84 ○ 強制使用文件匹配擴展 85 ○ Linux中文件名中含有空格是合法的,要適應這種情況,應該將$file用雙引號圈起來 86 ? C風格的for循環 87 ○ 雙括號避免和bash shell的語法發生沖突 88 ○ 括號中的變量不用使用美元符,變量運算不需要進入expr,變量賦值可以有空格 89 ○ 和C語言類似,在for循環中可以使用多個變量 90 ? while循環 91 while test command 92 do 93 other commands 94 done 95 若test command的退出碼為0 96 執行commands 97 ○ 方括號檢查shell變量 98 ○ 使用多個測試命令時,只有最后一個命令的退出碼會被用來決定什么時候退出循環 99 ? until命令 100 ○ until與while相反,當返回一個不為0的退出碼時,執行commands 101 ○ 當返回的退出碼為0時,循環結束 102 until test command 103 do 104 other commands 105 done 106 ○ 使用多個測試命令時規則和while相同 107 ? 嵌套循環 108 ○ 可以混用不同的循環方式(for,while,until) 109 ? 循環處理文件數據 110 ○ ?????????? 111 ? 循環控制 112 ○ break 113 ○ continue 114 ? 處理循環的輸出 115 ○ done > output.txt #將for命令的結果重定向到output.txt 116 ○ 重定向文件不存在則shell會創建一個該文件?
轉載于:https://www.cnblogs.com/CofJus/p/10174664.html
總結
以上是生活随笔為你收集整理的Bash shell - 2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]LoadRunner 各个指标分析
- 下一篇: 第四次随笔作业