Shell腳本語言(第二篇)

自己寫編譯動態庫腳本文件,腳本語言去操作數據庫,插入數據,刪除數據,修改數據等等...

一、Shell腳本語言-echo命令?

1、顯示普通字符串
    echo "iPhoneX 標配 8388"

2、顯示轉義字符
    echo "  " iPhoneX 頂配 9688 "  "

3、顯示變量
    iphone="iPhoneX"
    echo "${iphone} 9688"

4、顯示換行
    錯誤寫法
    echo "iPhoneX \n hello未來"
    正確寫法(-e:表示開啟轉義功能)
    echo -e "iPhoneX \n hello未來"

5、不換行
    注意:"-e"開啟轉義功能,"\c"表示不換行
    echo -e "iPhoneX hello未來 \c "
    echo "科技"

6、顯示一個執行命令
    要求:輸出當前時間,還有很多命令,后面學習一些
    echo `date`

7、退出命令
    語法:exit 狀態->退出程序
    寫法一
        iphone="404報錯童鞋,買了一臺iPhoneX,非常不好,出bug"
        echo ${iphone}
        exit
        echo "你完蛋了,買了假貨"
    寫法二
        iphone="404找不到錯誤"
        echo ${iphone}
        exit 0  

        age=100
        if(age > 100){
            exit 1
        }

8、重定向(核心)

二、Shell腳本語言-數組?

1、語法        
    數組名=(值1 值2 值3…)
2、初始化數組
    方式一
        name=("404" "Andy" "柚芒子" "全班最菜")
        #輸出
        echo $name
        #默認:打印第一個元素
    方式二
        name=()
        name[0]="404"
        name[1]="Andy"
        name[2]="柚芒子"
        name[3]="全班最菜"
        echo ${name[0]}  ${name[1]}

3、讀取數組
    語法結構:${數組名[下標]}
    name=("404" "Andy" "柚芒子" "全班最菜")
    #輸出一個元素     
    echo ${name[0]}
    #輸出所有->"@"表示輸出所有的數據
    echo ${name[@]}

4、數組長度
    方式一:獲取數組元素個數
        語法:${#數組名[@]}
        代碼:
            name=("404" "Andy" "柚芒子" "全班最菜")
            echo ${#name[@]}
        結果:4
    方式二:獲取數組元素個數
        語法:${#數組名[*]}
        代碼:
            name=("404" "Andy" "柚芒子" "全班最菜")
            echo ${#name[*]}
        結果:4

    方式三:獲取單個元素->字符長度
        語法:${#數組名[下標]}
        代碼:
            name=("404" "Andy" "柚芒子" "全班最菜")
            echo ${#name[2]}
        結果:3

三、Shell腳本語言-傳遞參數?

1、語法定義?
    ./文件名稱.sh 參數1 參數2 參數3...
2、案例
    腳本內容如下:
        #${0}->表示文件名稱
        #${1}->表示參數1
        #${2}->表示參數2
        echo ${0} ${1}  ${2}
    執行腳本代碼:
        ./hello.sh "逗你玩" "餓到爆"

3、特殊字符
    3.1 $#:獲得腳本輸入參數個數
        腳本內容如下:
            echo ${#}   
        執行腳本代碼:
            ./hello.sh "逗你玩" "餓到爆"
        執行腳本結果:2

    3.2 $*:顯示整個腳本輸入參數列表
        腳本內容如下:
            echo ${*}   
        執行腳本代碼:
            ./hello.sh "逗你玩" "餓到爆"
        執行腳本結果:"逗你玩" "餓到爆"

四、Shell腳本語言-基本運算符?

 1、算數運算符?
    1.1 "+"運算
        #注意:"expr"規定命令
        a=8388
        b=9688
        c=`expr $a + $b`
        echo "c的值:$c"

    1.2 "-"運算
        #注意:"expr"規定命令
        a=8388
        b=9688
        c=`expr $a - $b`
        echo "c的值:$c"

    1.3 "*"運算
        #注意:"expr"規定命令
        a=8388
        b=9688
        c=`expr $a \* $b`
        echo "c的值:$c"

    1.4 "/"運算
        #注意:"expr"規定命令
        a=8388
        b=9688
        c=`expr $a / $b`
        echo "c的值:$c"

    1.5 "%"運算
        #注意:"expr"規定命令
        a=8388
        b=9688
        c=`expr $a % $b`
        echo "c的值:$c"

    1.6 "="運算
        #注意:"expr"規定命令
        a=8388
        b=$a
        echo "b的值:$b"
    
    1.7 "=="運算
        #注意:"expr"規定命令
        a=8388
        b=9688
        if [ $a == $b ]
        then
            echo "a等于b"
        else
            echo "a不等于b"
        fi

2、關系運算符
    2.1 "-eq":檢測兩個數是否相等,當等返回true
        a=100
        b=200
        if [ $a -eq $b ]
        then
            echo "a等于b"
        else
            echo "a不等于b"
        fi

    2.2 "-ne":檢測兩個數是否相等,不相等返回true
        a=100
        b=200
        if [ $a -ne $b ]
        then
            echo "a不等于b"
        else
            echo "a等于b"
        fi

    2.3 "-gt":檢測左邊數是否大于右邊數,如果是,返回true
        a=100
        b=200
        if [ $a -gt $b ]
        then
            echo "a大于b"
        else
            echo "a小于b"
        fi

    2.4 "-lt":檢測左邊數是否小于右邊數,如果是,返回true
        a=100
        b=200
        if [ $a -lt $b ]
        then
            echo "a小于b"
        else
            echo "a大于b"
        fi

    2.5 "-ge":檢測左邊數是否(大于+等于)右邊數,如果是,返回true
        a=100
        b=200
        if [ $a -ge $b ]
        then
            echo "a大于等于b"
        else
            echo "a小于b"
        fi

    2.6 "-le":檢測左邊數是否(小于+等于)右邊數,如果是,返回true
        a=100
        b=200
        if [ $a -le $b ]
        then
            echo "a小于等于b"
        else
            echo "a大于b"
        fi

3、布爾值運算符?
    3.1 "!":非運算,表達式為true,返回true,否則返回false
        a=100
        b=200
        if [ $a != $b ]
        then
            echo "a不等于b"
        fi

    3.2 "-o":或運算,有一個表達式為true,則返回true
        a=100
        b=200
        if [ $a -lt 200 -o $b -gt 200 ]
        then
            echo "成立"
        fi

    3.3 "-a":與運算,兩個表達式為true,則返回true
        a=100
        b=200
        if [ $a -lt 200 -a $b -gt 200 ]
        then
            echo "成立"
        else
            echo "不成立"
        fi

4、邏輯運算符
    4.1 "&&":邏輯且->and
        a=100
        b=200
        if [ $a -lt 200 ] && [ $b -gt 200 ]
        then
            echo "成立"
        else
            echo "不成立"
        fi  

    4.2 "||":邏輯 OR
        a=100
        b=200
        if [ $a -lt 200 ] || [ $b -gt 200 ]
        then
            echo "成立"
        else
            echo "不成立"
        fi

5、字符串運算?
    5.1 "=":檢測兩個字符串是否相等,如果相等返回true
        a="JAR"
        b="逗你玩"
        if [ $a = $b ]
        then
            echo "字符串a等于字符串b"
        else
            echo "字符串a不等于字符串b"
        fi

    5.2 "!=":檢測兩個字符串是否相等,如果不相等返回true
        a="JAR"
        b="逗你玩"
        if [ $a != $b ]
        then
            echo "字符串a不等于字符串b"
        else
            echo "字符串a等于字符串b"
        fi

    5.3 "-z":檢測字符串長度是否為0,如果是返回true
        a="JAR"
        if [ -z $a ]
        then
            echo "a不為空,存在"
        else
            echo "a不存在值"
        fi

    5.4 "-n":檢測字符串長度是否為0,如果不是0,返回true
        a="JAR"
        if [ -n $a ]
        then
            echo "a存在"
        else
            echo "a不存在值"
        fi

    5.5 "字符串":檢測字符串是否為空,不為空返回true
        a="JAR"
        if [ $a ]
        then
            echo "a不為空"
        else
            echo "a為空"
        fi
6、文件測試運算符?
    file="/Users/yangshaohong/Desktop/test.sh"

    6.1 "-d file":檢測文件是不是一個目錄,如果是,那么返回true
        if [ -d $file ]
        then 
            echo "是一個目錄"
        else
            echo "不是一個目錄"
        fi

    6.2 "-r file":檢測文件是否可讀,如果是,那么返回true
        if [ -r $file ]
        then 
            echo "可讀"
        else
            echo "不可讀"
        fi

    6.3 "-w file":檢測文件是否可寫,如果是,那么返回true
        if [ -w $file ]
        then 
            echo "可寫"
        else
            echo "不可寫"
        fi

    6.4 "-x file":檢測文件是否是可執行文件,如果是,那么返回true
        if [ -x $file ]
        then 
            echo "可執行"
        else
            echo "不可執行"
        fi

    6.5 "-f file":檢測文件是否是一個普通文件(既不是目錄,也不是設備文件),如果是,那么返回true
        if [ -f $file ]
        then 
            echo "文件為普通文件"
        else
            echo "文件為特殊文件"
        fi

    6.6 "-s file":檢測文件是否為空(文件有內容),如果是,那么返回true
        if [ -s $file ]
        then 
            echo "文件有內容"
        else
            echo "文件沒有內容"
        fi

    6.7 "-e file":檢測文件是否存在(包含了:目錄和文件),如果是,那么返回true
        if [ -e $file ]
        then 
            echo "存在"
        else
            echo "不存在"
        fi

五、Shell腳本語言-流程控制?

1、"if"語句
    語法結構
        if [條件]
        then
            代碼
        fi
    代碼結構
        a="JAR"
        b="逗你玩"
        if [ $a = $b ]
        then
            echo "字符串a等于字符串b"
        fi

2、"if else"語句
    語法結構
        if [條件]
        then
            代碼
        else
            代碼
        fi
    代碼結構
        a="JAR"
        b="逗你玩"
        if [ $a = $b ]
        then
            echo "字符串a等于字符串b"
        else
            echo "字符串a不等于字符串b"
        fi

3、"if-else-if-else"
    語法結構
        if [條件]
        then
            代碼
        elif [條件]
        then
            代碼
        else
            代碼
        fi
    
    代碼結構
        a="JAR"
        b="逗你玩"
        if [ $a = $b ]
        then
            echo "字符串a等于字符串b"
        elif [ $a ]
        then
            echo "字符串a不為空"
        else
            echo "字符串a不等于字符串b"
        fi

4、"for"循環語句
    語法結構
        for 變量名 in item1 item2 item3 …
        do
            代碼
        done
    代碼案例一
        for name in "JAR" "小白菜" "Andy" "雪夜"
        do
            echo ${name}
        done
    
5、"while"循環
    語法結構
        while(條件)
        do
            代碼
        done
    代碼案例一
        a=1
        while(($a<10))
        do
            echo ${a}
            a=`expr $a + 1`
        done

6、"case"語句
    語法結構
        case 值 in
        模式1)
            代碼
            ;;
        模式2)
            代碼
            ;;
        模式3)
            代碼
            ;;
        sac
    代碼案例一
        number=1
        case $number in
        1) echo "等于1"
            ;;
        2) echo "等于2"
            ;;
        3) echo "等于3"
            ;;
        esac

六、認知的提升

昨天晚上看了一篇文章->思考問題
    西施(美貌),東施(丑陋)
    身體不好
    表象和實質(相對)
    看問題:經常看的表象,很少觀察實質
    例如:成績好,技術很牛逼(表象)
    實質:技術牛逼這個人(背后付出多少心血)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380