久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    shell腳本基礎(chǔ)-2

     Coder編程 2022-12-26 發(fā)布于北京

    1.腳本執(zhí)行的4種方法

    #!/bin/bash
    # test.sh
    # 這里借助SHLVL這個(gè)變量,SHLVL可以顯示shell的層級(jí),
    # 每啟動(dòng)一個(gè)shell,這個(gè)值就加1
    echo "shell level :$SHLVL"
    echo "hello world!"
    
    1. 切換到shell腳本所在目錄執(zhí)行
      root@localhost:/# cd /tmp/
      root@localhost:/tmp# chmod +x test.sh
      root@localhost:/tmp# ./test.sh
      shell level :2
      hello world!

    2. 以絕對(duì)路徑執(zhí)行
      root@localhost:~# chmod +x /tmp/test.sh
      root@localhost:~# /tmp/test.sh
      shell level :2
      hello world!

    3. 直接使用bash或sh 來(lái)執(zhí)行bash shell腳本
      root@localhost:/tmp# bash test.sh
      shell level :2
      hello world!
      root@localhost:/tmp# sh test.sh
      shell level :1
      hello world!

    4. 在當(dāng)前shell 環(huán)境中執(zhí)行
      root@localhost:/tmp# . test.sh
      shell level :1
      hello world!
      root@localhost:/tmp# source test.sh
      shell level :1
      hello world!

    總結(jié):注意看SHLVL的值,前3種方式都在子shell中執(zhí)行(sh除外),第4種在當(dāng)前shell種執(zhí)行。

    2.調(diào)試腳本

    bash -x script.sh 跟蹤調(diào)試腳本

    root@localhost:/tmp# bash -x test.sh
    + echo 'shell level :2'
    shell level :2
    + echo 'hello world!'
    hello world!
    

    -x 打印所執(zhí)行的每一行命令及當(dāng)前狀態(tài)

    set -x:在執(zhí)行是顯示參數(shù)和命令

    set +x:禁止調(diào)試

    set -v :當(dāng)命令進(jìn)行讀取時(shí)顯示輸入

    set +v :當(dāng)命令進(jìn)行讀取時(shí)禁止打印輸入

    3.輸出格式化

    1.C語(yǔ)言風(fēng)格格式化輸出

    #!/bin/bash
    
    printf " % -5s %-10s %-4s\n" NO. Name Mark
    printf " % -5s %-10s %-4.2f\n" 1 joe 80.55 
    printf " % -5s %-10s %-4.1f\n" 2 joe 80.5
    printf " % -5s %-10s %-4.3f\n" 3 joe 80.500

    2.echo

    1.不換行

    echo -n "hello world"

    2.轉(zhuǎn)義

    echo -e "hello\t\tworld"

    3.彩色輸出

    顏色   重置	黑	紅	綠	黃	藍(lán)	紫	青	白
    前景色	0	30	31	32	33	34	35	36	37
    背景色	0	40	41	42	43	44	45	46	47

    echo -e "\e[1;31m This is red test \e[0m"

    echo -e "\033[47;31m This is red test \033[0m"

    4.數(shù)據(jù)類(lèi)型 

    1.字符串

    獲取字符串長(zhǎng)度

    echo ${#str}

    2.數(shù)組

    數(shù)組的定義
    方法一:
    arr=(1 2 3 4 5)
    方法二:
    arr[0]=1
    arr[1]=2
    arr[2]=3
    echo ${arr[*]}
    1 2 3
    

    打印數(shù)組中的值

    root@localhost:~# arr=(1 2 3 4 5)
    root@localhost:~# echo ${arr[2]}
    3
    root@localhost:~# echo ${arr[*]}
    1 2 3 4 5
    root@localhost:~# echo ${arr[@]}
    1 2 3 4 5

    3.關(guān)聯(lián)數(shù)組

    普通數(shù)組只能使用整數(shù)作為索引值,而關(guān)聯(lián)數(shù)組可以使用任意文本作為索引值(有點(diǎn)類(lèi)似于Python中的字典,不知道這樣理解對(duì)不對(duì)),關(guān)聯(lián)數(shù)組只在bash 4.0以上支持。
    查看bash版本的方法:

    bash -version

    關(guān)聯(lián)數(shù)組的定義和使用

    root@localhost:~# declare -A person
    root@localhost:~# person=([name]="Wang" [age]=18)
    root@localhost:~# echo ${person[name]}
    Wang
    root@localhost:~# echo ${person[age]}
    18
    root@localhost:~# echo ${person[*]}
    Wang 18
    

    5.重定向

    符號(hào)	含義	    用法	                                            例
    <	標(biāo)準(zhǔn)輸入	   從文件中輸入	                                    wc -l file.txt
    >	標(biāo)準(zhǔn)輸出	   目標(biāo)文件不存在會(huì)新建一個(gè);目標(biāo)文件存在會(huì)覆蓋原內(nèi)容	    echo "" > /var/www/html/index.php
    >>	追加到文件   目標(biāo)文件不存在會(huì)新建一個(gè);目標(biāo)文件存在會(huì)在文件末尾追加    echo "add text" >> file.txt
    

    6.變量

     1.只讀變量

    #!/bin/bash
    readonly hours_per_day=24
    hours_per_day=12
    

    更改變量會(huì)觸發(fā)異常

    2.展開(kāi)運(yùn)算符

    運(yùn)算符用途
    ${varname:-word} 如果變量存在且非null,則返回其值;
    否則返回word
    # echo ${service:-"service is not defined"}
    service is not defined
    ${varname:=word} 如果變量存在且非null,則返回其值;
    否則設(shè)置它的值為word并返回
    root@localhost:~# echo ${service:=httpd}
    ${varname:+word} 如果變量存在且非null,則返回word;
    否則返回null
    echo ${service:+1}
    ${varname:?message} 如果變量存在且非null,則返回其值;
    否則顯示message,并退出當(dāng)前腳本或命令;
    message默認(rèn)信息為:parameter null or not set
    # echo ${b:?}
    -bash: b: parameter null or not set
    # echo ${b:?"not defined"}
    -bash: b: not defined

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類(lèi)似文章 更多

      主站蜘蛛池模板: 韩国无码AV片午夜福利| 狠狠久久亚洲欧美专区| 精品无码三级在线观看视频| 人妻少妇不满足中文字幕| 精品日韩人妻中文字幕| 亚洲人成中文字幕在线观看| 免费观看的AV毛片的网站| 午夜大片免费男女爽爽影院| 亚洲乱码在线卡一卡二卡新区| 成人一区二区不卡国产| 日韩精品一区二区三区影院| 精品超清无码视频在线观看| 久久综合亚洲鲁鲁九月天| 国产精品国产三级国产试看| 亚洲人成网站77777在线观看| 精品无人区一区二区三区| 亚洲人成小说网站色在线| 蜜臀AV在线播放一区二区三区| 熟女系列丰满熟妇AV| 亚洲AV无码一区二区三区人| 99在线精品国自产拍中文字幕| 国模精品一区二区三区| 暖暖日本手机免费观看中文 | 久久这里只精品国产免费9| 人妻无码久久一区二区三区免费| 最新国产精品好看的精品| 欧美伊人久久大香线蕉综合 | 国产成人精品视频不卡| 无码AV无码天堂资源网影音先锋| 中文字幕人妻日韩精品| 日日噜噜夜夜爽爽| 国产在线亚州精品内射| 国产精品亚洲中文字幕| 丁香色欲久久久久久综合网 | 亚欧乱色熟女一区二区三区| 精品国产美女福到在线不卡 | 国产美女高潮流白浆视频| 一本一本久久AA综合精品| 国产AV无码专区亚洲AV紧身裤| 欧美xxxx做受欧美.88| 欧美成人看片黄A免费看|