shell 腳本邏輯判斷

shell中的邏輯判斷

  • 格式1 :if 條件 ; then 語句; fi
  • 格式2:if 條件; then 語句; else 語句; fi
  • 格式3::if …; then … ;elif …; then …; else …; fi

邏輯判斷表達式

- if [ $a -gt $b ];             
- if [ $a -lt 5 ];              
- if [ $b -eq 10 ]
  • 舉個例子:a賦值10,判斷語句若是a>5 ,則輸出OK。
#!/bin/bash
a=10
if [ $a -gt 5 ]
then
   echo "ok"
fi
  • 檢查有沒有語法錯誤,使用sh -n 1.sh
  • 執行腳本 sh -x 1.sh

判斷符號

  • -gt (>);
  • -lt(<);
  • -ge(>=);
  • -le(<=);
  • -eq(==);
  • -ne(!=)

    可使用&& 和|| 來結合多個條件

    • if [ $a -gt 5 ] && [ $a -lt 10 ]; then
    • if [ $b -gt 5 ] || [ $b -lt 3 ]; then
    • && 表示而且
    • || 表示或者

if 判斷文件、目錄屬性

  • [ -f file ]判斷是不是普通文件,且存在shell

  • [ -d file ] 判斷是不是目錄,且存在bash

  • [ -e file ] 判斷文件或目錄是否存在code

  • [ -r file ] 判斷文件是否可讀變量

  • [ -w file ] 判斷文件是否可寫file

  • [ -x file ] 判斷文件是否可執行權限

    root用戶對文件的讀寫比較特殊,即便一個文件沒有給root用戶讀或者寫的權限,root用戶照樣能夠讀或者寫語法

if判斷的一些特殊用法

  • if [ -z "$a" ] 這個表示當變量a的值爲空時會怎麼樣
  • if [ -n "$a" ] 表示當變量a的值不爲空
  • if grep -q '123' 1.txt; then 表示若是1.txt中含有'123'的行時會怎麼樣
  • if [ ! -e file ]; then 表示文件不存在時會怎麼樣
  • if (($a<1)); then …等同於 if [ $a -lt 1 ]; then…
  • [ ] 中不能使用<,>,==,!=,>=,<=這樣的符號
相關文章
相關標籤/搜索