第3次課-Shell腳本語言-第3講

上一節(jié)課發(fā)現(xiàn)問題璧疗?

"-n"使用存在問題?
    錯誤代碼
        val="Hello"
        if [ -n $val ]
        then
            echo "存在"
        else
            echo "不存在"
        fi

    正確代碼
        val="Hello"
        if [ -n "$val" ]
        then
            echo "存在"
        else
            echo "不存在"
        fi

內(nèi)容一:Shell腳本語言->文件包含烈拒?

語法一:./filename
    文件A->fileA.sh
        腳本內(nèi)容
            #!/bin/bash
            echo "我是文件A"
    文件B->fileB.sh
        腳本內(nèi)容
            #!/bin/bash
            #文件B包含文件A
            ./fileA.sh
            echo "我是文件B"
    執(zhí)行腳本命令
        ./fileB.sh

語法二:source filename.sh
    注意:source是一個關(guān)鍵字
    文件A->fileA.sh
        腳本內(nèi)容
            #!/bin/bash
            echo "我是文件A"
    文件B->fileB.sh
        腳本內(nèi)容
            #!/bin/bash
            #文件B包含文件A
            source ./fileA.sh
            echo "我是文件B"
    執(zhí)行腳本命令
        ./fileB.sh

內(nèi)容二:Shell腳本語言->cat命令->簡單介紹->后面還會大量用到

作用:
    作用一:查看文件內(nèi)容
    作用二:連接文件
    作用三:創(chuàng)建一個文件或者多個文件
    作用四:重定向輸出到終端
    作用五:重定向到文件

語法:cat [選項] [文件]
    
案例演示
    案例一:查看文件內(nèi)容
        cat fileA.sh
    案例二:cat -n fileA.sh
        -n選項:可以顯示文件內(nèi)容和行號
    案例三:cat -b fileA.sh
        -b選項:和"-n"類似功能,但是只標記非空白行行號
    案例四:cat -e fileA.sh
        -e選項:在每一行內(nèi)容最后加入了一個"$"符號,在需要將多行內(nèi)容轉(zhuǎn)換為一行內(nèi)容的時候掂摔,非常有用(后面腳本學習,不是很多)->自己試一試
    案例五:cat
        接收標準輸入赢赊,同時還會輸出標準輸出(敲回車鍵即可)
        退出:control + c

內(nèi)容三:Shell腳本語言->獲取用戶輸入->read命令

1乙漓、接收一個輸入內(nèi)容
    寫法一
        echo "請輸入你的名字:"
        read name
        echo "您的名字是:${name}"
    寫法二
        read -p "請輸入你的名字:" name
        echo "您的名字是:${name}"

2、超時->輸入時候释移,你過了多少秒沒有輸入叭披,那么過期
    計時器
    if read -t 6 -p "請輸入你的名字:" name
    then
        echo "您的名字是:${name}"
    else
        echo
        echo "超時"
    fi

3、隱藏輸入的內(nèi)容->"-s"->類似于輸入密碼
    read -s -p "請輸入您密碼:" pwd
    echo "您的密碼是:${pwd}"

4玩讳、從文件里面讀取內(nèi)容
    cat fileB.sh | while read line
    do
        echo "內(nèi)容:${line}"
    done
    下一節(jié)課:管道
    接收輸入一行:read name
    接收輸入多行:while read name

內(nèi)容四:Shell腳本語言->printf命令使用

1涩蜘、printf命令和echo命令區(qū)別嚼贡?
    區(qū)別一
        printf不會換行
        echo自動換行
    區(qū)別二
        printf:一般用于格式打印
        echo:用于標準輸出

2、printf語法結(jié)構(gòu)
    printf format-string 參數(shù)列表
    
3同诫、printf案例
    案例一
        
        #打印輸出表頭
        printf "%-10s %-8s %-4s \n" 姓名 性別 體重kg
        #打印輸出內(nèi)容
        printf "%-10s %-8s %-4s \n" Andy 男 64kg
        printf "%-10s %-8s %-4s \n" jar 男 65kg
        printf "%-10s %-8s %-4s \n" 帥牛哥 男 100kg

        注意一:"%-10s"指的是一個寬度為10個字符粤策,"-"表示左對齊
            假設(shè):%-4s 長度:"AndyAndy"
            s:表示字符串(字符)
        注意二:"%-4.2f"指的是一個寬度為4,小數(shù)點2位误窖,"f"表示小數(shù)
        …   
        
    案例二
        3.1 printf format-string為雙引號
            printf "%d %s \n" 1 "Dream"
        3.2 printf format-string為單引號
            printf '%d %s \n' 1 "Dream"
        3.3 printf format-string沒有號
            錯誤寫法
            printf %d %s 1 "Dream"
            正確寫法->指定一個允許的
            printf %d "Dream"
        3.4 多個參數(shù)輸出
            printf "%d %s \n" 1 "Dream"

4叮盘、printf轉(zhuǎn)義字符
    printf " "<%s>" " "Dream"       

內(nèi)容五:Shell腳本語言->函數(shù)

1、語法結(jié)構(gòu)
    [function] 方法名稱(){
        邏輯代碼
    }
2霹俺、案例分析  
    定義方法
        function testFunc(){
            echo "Hello world"
        }
    調(diào)用方法
        echo "調(diào)用前"
        testFunc
        echo "調(diào)用后"

    swift->典型腳本寫法
        func test(){
        }

內(nèi)容六:Shell腳本語言->輸入/輸出重定向熊户?

1、學習->輸入/輸出重定向->控制臺/文件
    1.1 輸入重定向->語法
        語法結(jié)構(gòu):wc 名稱名稱
        
        1.1.1 "<":輸入重定向
            命令代碼:wc fileA.sh    
            將fileA中內(nèi)容讀取到控制臺
            wc讀取到了三個重要信息
                第一個參數(shù):文本行數(shù)
                第二個參數(shù):文本詞數(shù)
                第三個參數(shù):文本字節(jié)數(shù)
        1.1.2 "<<":創(chuàng)建文件

            cat命令

    1.2 輸出重定向
        1.2.1 ">":我們把方向指向一份文件吭服,那么將文件中的內(nèi)容刪除嚷堡,寫入新的內(nèi)容
            腳本文件fileA.sh代碼
                #!/bin/bash
                echo "我是文件A"
            腳本文件fileB.sh代碼
                #!/bin/bash
                echo "我是文件B"            
                echo "Hello Dream" > fileA.sh   
            執(zhí)行腳本代碼
                ./fileB.sh  
            總結(jié):替換內(nèi)容->將fileB.sh輸出內(nèi)容替換了fileA.sh中內(nèi)容

        1.2.2 ">>":追加
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艇棕,隨后出現(xiàn)的幾起案子蝌戒,更是在濱河造成了極大的恐慌,老刑警劉巖沼琉,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件北苟,死亡現(xiàn)場離奇詭異,居然都是意外死亡打瘪,警方通過查閱死者的電腦和手機友鼻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闺骚,“玉大人彩扔,你說我怎么就攤上這事∑” “怎么了虫碉?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胸梆。 經(jīng)常有香客問我敦捧,道長,這世上最難降的妖魔是什么碰镜? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任兢卵,我火速辦了婚禮,結(jié)果婚禮上绪颖,老公的妹妹穿的比我還像新娘秽荤。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布王滤。 她就那樣靜靜地躺著,像睡著了一般滓鸠。 火紅的嫁衣襯著肌膚如雪雁乡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天糜俗,我揣著相機與錄音踱稍,去河邊找鬼。 笑死悠抹,一個胖子當著我的面吹牛珠月,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播楔敌,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼啤挎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了卵凑?” 一聲冷哼從身側(cè)響起庆聘,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勺卢,沒想到半個月后伙判,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡黑忱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年宴抚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甫煞。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡菇曲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抚吠,到底是詐尸還是另有隱情羊娃,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布埃跷,位于F島的核電站蕊玷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏弥雹。R本人自食惡果不足惜垃帅,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剪勿。 院中可真熱鬧贸诚,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至运悲,卻和暖如春龄减,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背班眯。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工希停, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人署隘。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓宠能,卻偏偏與公主長得像,于是被迫代替她去往敵國和親磁餐。 傳聞我的和親對象是個殘疾皇子违崇,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容