欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

bash基礎(chǔ)-創(chuàng)新互聯(lián)

基礎(chǔ)知識(shí):

張北ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
    變量:  變量名+指向的內(nèi)存空間;
    變量賦值:  var_name=value;
    變量類型: 
        數(shù)據(jù)存儲(chǔ)的格式,表示的數(shù)據(jù)范圍;
        字符型,數(shù)字型,布爾型;
        C語(yǔ)音是強(qiáng)變量類型(使用前必須聲明類型,類型聲明后不能改變);bash是弱變量類型(無(wú)需事先聲明,
                類型隨需求改變);
        bash默認(rèn)變量類型為字符型;
        要進(jìn)行算術(shù)運(yùn)算,需要聲明為數(shù)字型:
        declare -i  var_name
        變量引用:  ${var_name}   $var_name

算術(shù)運(yùn)算:

       let VAR=expression;
       VAR= $[expression];
       VAR= $((expression));
       VAR= $(expr argu1 argu2 argu3 )
       注意:有些時(shí)候乘法符號(hào)需要用轉(zhuǎn)義字符;
       增強(qiáng)型賦值: += ,-= , *=, %=
       變量做某種運(yùn)算后回存到此變量中
         let i=$i+n  ---> let i+=n  --->這個(gè)let的變量不用出現(xiàn)$
         let i+=1    ---> let i++
         let i-=i    ---> let i--
條件測(cè)試:	
    (1)執(zhí)行命令,并利用命令返回狀態(tài)判斷, $?
       0: 成功  ,1~255失敗 
      腳本的狀態(tài)返回值:默認(rèn)是返回最后一條命名的狀態(tài)返回值
     自定義退出狀態(tài)碼:exit [n]:  n為指定的狀態(tài)碼
    (2)測(cè)試表達(dá)式
     test expression
     [ expression ]   ----注意expression兩邊必須有空白字符
     [[ expression ]]   
數(shù)值測(cè)試:
  -eq:  是否等于   [ $sum1  -eq  $sum2 ]
  -ne:  是否不等于
  -gt:  是否打于
  -ge:  是否大于等于
  -lt:  是否小于
  -le:  是否小于等于
字符測(cè)試:
  ==:  等于
  >:   大于
  <:   小于
  !=   不等于
注意: a.字符串要加雙引號(hào);
       b.字符串測(cè)試要是有[[  ]];
          
          =~ : 左側(cè)字符串是否能夠被右側(cè)的PATTERN所匹配;
          -z “string”: 判斷指定的字符串是否為空,空為真;
          -n “string”: 判斷指定的字符串是否為空,非空為真;
       
        文件測(cè)試
           存在性測(cè)試:
             -a FILE  存在為真
             -e FILE  存在為真
           存在性及類型測(cè)試:
             -b FILE   塊文件
             -c FILE   字符文件
             -d FILE   目錄
             -f FILE   普通文件
             -h FILE   符合鏈接文件
             -P FILE   管道文件(大寫(xiě)P)
             -S FILE   套接字文件(大寫(xiě)S)
            
            文件權(quán)限性測(cè)試
             -r FILE   ;  -w FILE  ;-x FILE  ;
             -U FILE (suid權(quán)限) ; -g FILE(sgid權(quán)限); -K FILE(sticky權(quán)限)
            文件是否有內(nèi)容
             -s FILE
            時(shí)間戳
             -N FILE 文件自上一次讀后是否被修改過(guò);
            從屬關(guān)系
             -O 當(dāng)前用戶是否文件的屬主
             -G 當(dāng)前用戶是否文件的屬組
            雙目測(cè)試
              FILE1 -ef FILE2  是否指向相同inode的硬連接
              FILE1 -nt FILE2  FILE1是否新于FILE2
              FILE1 -ot FILE2  FILE1是否舊于FILE2
組合測(cè)試條件
  邏輯運(yùn)算
  (1)  
        COMMAND1 && COMMAND2
        可以這樣來(lái)使用:相當(dāng)于if command1 is true then command2,
        因?yàn)橄扰袛郼ommand1,ture才會(huì)執(zhí)行command2
     COMMAND1 || COMMAND2
          可以這樣來(lái)使用:相當(dāng)于else,因?yàn)橄扰袛郼ommand1,command1是ture的話,就不執(zhí)行command2了
     COMMAND1 !  COMMAND2
  (2) 
     EXPRESSION1 -a EXPRESSION2
     EXPRESSION1 -0 EXPRESSION2
     !EXPRESSION2
     注意: 邏輯運(yùn)算符前后都有空白字符
     邏輯運(yùn)算優(yōu)先級(jí)別 !> -a > -o, 改變級(jí)別用括號(hào),括號(hào)要用轉(zhuǎn)義字符,前后留空

 示例:

logic_script.sh
#!/bin/bash
#
file=/tmp/logic_script.sh
  [ 6 -lt 7 ] && echo "1" || echo "0"
  [ "is a good day" =~ "day" ] && echo "1" || echo "0"   
  [ -a $file] && echo "1" || echo "0"          
[root@localhost tmp]# bash -x logic_script.sh 
+ file=/tmp/logic_scritp.sh           ---看||的邏輯,前面為真,后面就不執(zhí)行了
+ '[' 6 -lt 7 ']'
+ echo 1
1
+ '[' isagoodday '=~' day ']'
logic_script.sh: line 6: [: =~: binary operator expected  ---字符串比較要兩個(gè)中括號(hào)[[]]
+ echo 0
+ '[' -a '/tmp/logic_scritp.sh]'
logic_script.sh: line 7: [: missing `]'  ---看錯(cuò)誤提示,]沒(méi)有空格隔開(kāi),變?yōu)閙issing `]'
+ echo 0
            
修改后: 
logic_script.sh  
#!/bin/bash
#
file=/tmp/logic_script.sh
  [ 6 -lt 7 ] && echo "1" || echo "0"
  [[ "isagoodday" =~ "day" ]] && echo "1" || echo "0"
  [ -a $file ] && echo "1" || echo "0"
[root@localhost tmp]# bash -x logic_script.sh 
+ file=/tmp/logic_script.sh
+ '[' 6 -lt 7 ']'
+ echo 1
1
+ [[ isagoodday =~ day ]]
+ echo 1
1
+ '[' -a /tmp/logic_script.sh ']'
+ echo 1
1

變量作用域            

 環(huán)境變量: 當(dāng)前shell進(jìn)行及子進(jìn)程有效
                賦值: (1)export var_name=value
                       (2)var_name= value
                            export var_name
                       (3)declare -x var_name=value
                       (4)var_name=value
                            delare -x var_name
                       注意: bash內(nèi)嵌了許多環(huán)境變量(通常全為大寫(xiě)字母)
                查看: export , declare -x  , env
                
            本地變量: 當(dāng)前運(yùn)行腳本的shell進(jìn)行的生命周期,對(duì)子shell無(wú)效
                賦值: var_name=value
                引用: ${var_name}  , $var_name
                查看: set
                撤銷(xiāo): unset var_name(此處不能用$)
                   
            
            局部變量: 某代碼的片段,如函數(shù)的上下文,作用在函數(shù)的生命周期,函數(shù)結(jié)束就銷(xiāo)毀;
                賦值: local var_name=vaule               
                             
            位置參數(shù)變量:當(dāng)前執(zhí)行腳本的shell進(jìn)程傳遞的參數(shù)
                使用方式:myscript argue1  argu2 argu3 ... --->執(zhí)行腳本時(shí)直接賦值給參數(shù)
                引用方式:$1 , $2  ,$3,...   
                
                輪替: shift n  把后面第n個(gè)參數(shù)輪替到第一個(gè)參數(shù),n前面的參數(shù)都踢掉
                
            
                特殊變量:
                    $0: 腳本文件名;
                    $#: 腳本參數(shù)的個(gè)數(shù)
                    $*: 所有參數(shù)
                    $@: 所有參數(shù)   
                 --假設(shè)在腳本運(yùn)行時(shí)寫(xiě)了三個(gè)參數(shù) 1、2、3
                    " * " 等價(jià)于 "1 2 3"(傳遞了一個(gè)參數(shù)),
                    "@" 等價(jià)于 "1" "2" "3"(傳遞了三個(gè)參數(shù))
                    $$: 腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào);
                    $!: 后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的ID號(hào)
 例子:
sum_scirp.sh             
#!/bin/bash
#
declare -i sum
echo "the script filename is: $0"
echo "the script argu is : $*"
echo "the script argu's number is : $#"
shift 2                     ---- 前連個(gè)參數(shù)被踢了
echo "the script argu is : $*"
echo "the script argu's number is : $#"
for ((i=1;i<=$#;i++));do    ----仿C語(yǔ)言風(fēng)格的for循環(huán),需要兩個(gè)括號(hào)
let sum+=$i;            ----$i,i循環(huán)的值,怎樣取傳遞參數(shù)的值$($i)?
done
echo "the sum is $sum"
    [root@localhost tmp]# bash sum_script.sh  1 2 13 14 15 16 17 18 9
the script argu is : 1 2 13 14 15 16 17 18 9
the script argu's number is : 9
the script argu is : 13 14 15 16 17 18 9    ---- shift 2 的效果
the script argu's number is : 7
the sum is 28                ---- 28=1+2+3+4+5+6+7 ,這個(gè)$i不是取傳遞參數(shù)的值!
修改for語(yǔ)句
    for i in $*;do
      echo "$i"
      let sum+=$i         ---- 這個(gè)$i是列表里的數(shù)據(jù),!
    done
[root@localhost tmp]# bash  sum_script.sh  1 2 13 14 15 16 17 18 9
the script argu is : 1 2 13 14 15 16 17 18 9
the script argu's number is : 9
the script argu is : 13 14 15 16 17 18 9
the script argu's number is : 7
13
14
15
16
17
18
9
the sum is 102

本文標(biāo)題:bash基礎(chǔ)-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://aaarwkj.com/article30/dohhso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管網(wǎng)站制作、虛擬主機(jī)、Google、響應(yīng)式網(wǎng)站品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
精品av一区二区在线| 精品中文字幕欧美区一区| 欧美激情三级一区二区| 亚洲国产精品自拍视频| 日韩人妖视频在线观看| 国产精品国产一级国产av| 亚洲免费小视频在线观看| 五月婷婷六月丁香伊人妞| 欧美日韩一区二区三区四区在线观看 | 日韩精品中文字幕有码在线| 亚洲一区二区三区精品福利| 欧美高清成人一区二区三区| 在线一区免费视频播放| 国产一区二区黄色录像| 国产午夜精品福利爽爽| 久久精品无人区乱码一区二区| av电影在线中文字幕| 丰满人妻被猛烈进入中文版| 国产又粗又猛又爽黄老大爷| 欧美在线免费黄片视频| 国产剧免费看视频网站成人| 国产亚洲精品久在线| 国产有码日产一区在线观看| 在线观看91精品国产秒播| 国产传媒免费在线播放| 未满十八禁止在线观看av| 开心五月婷婷六月丁香| 国产在线乱码一区二区| 91久久精品国产一区蜜臀| 最新欧美精品一区二区| 久久av一区二区三区.| 九九热超在线视频精品| 不卡二卡三卡四卡精品| 一区二区三区毛片av网站| 国内精品久久大型新型| 日韩一二三区免费不卡视频| 欧美一区二区三区亚洲| 日本区一区二区三视频| 亚洲精品视频久久偷拍| 久久亚洲一区二区麻豆偷| 黄片色呦呦视频免费看|