亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • linux shell編程變臉賦值和字符串操作

    時間:2024-08-04 15:43:43 Linux認(rèn)證 我要投稿
    • 相關(guān)推薦

    linux shell編程變臉賦值和字符串操作

      1.用戶定義的變量

      用戶定義的變量有字母數(shù)字及下劃線組成,并且變量名的第一個字符不能為數(shù)字.

      與其它UNIX名字一樣,變量名是大小寫敏感的.

      對于變量,用戶可按如下方式賦值:

      name = value

      在引用變量時,需在前面加$符號,用戶也可以在變量間進(jìn)行相互賦值,如:

      (前面的$是命令提示符)

      $ JOHN = john

      $ NAME = $JOHN

      $ echo Hello $NAME

      Hello john

      也可以用變量和其他字符組成新的字,這時可能需要把變量用{}括起,如:

      $ SAT = Satur

      $ echo Today is ${SAT}day

      Today is Saturday

      對于未賦值的變量,Bash以空值對待,用戶也可以用unset命令清除給變量

      賦的值.

      Bash中還可以使用數(shù)組變量,其賦值有兩種:

      (1) name[index] = value

      (2) name = (value1 ... valuen) 此時下標(biāo)從0開始

      數(shù)組下標(biāo)的范圍沒有任何限制,同時也不必使用連續(xù)的分量.

      Bash中關(guān)于變量的內(nèi)建命令有:

      (1) declare和typeset.兩者具有一樣的功能.其選項有:

      [-/ ]a 設(shè)置/撤消變量的數(shù)組屬性

      [-/ ]i 設(shè)置/撤消變量的整數(shù)屬性

      [-/ ]r 設(shè)置/撤消變量的只讀屬性

      [-/ ]x 設(shè)置/撤消變量的輸出屬性

      -p var 顯示變量屬性

      (2) export和local.

      export把變量輸出到環(huán)境中,用法為:

      export name

      export name = value

      這里需要簡單介紹一下export的作用:當(dāng)Bash shell執(zhí)行一個

      程序時,將首先為該程序建立一個新的執(zhí)行環(huán)境,稱為子shell,

      在Bash Shell中變量都是局部的,即它們只是在創(chuàng)建它們的子

      Shell中是有意義的,使用export后,變量被設(shè)置為全局變量,這

      時可以被其它子Shell所識別

      local標(biāo)記變量為局部的(如只能被函數(shù)內(nèi)部使用),用法為:

      local name

      local name = value

      (3) readonly.

      指定變量為只讀,執(zhí)行后,改變量不能被再次賦值,用法為:

      readonly name

      2.位置變量或Shell參數(shù)

      Bash Shell在解釋用戶命令時,將把命令行的第一個子作為命令,而其它字作為

      參數(shù)通過位置變量傳遞給程序.$1,...,$9分別代表第一,...,九個參數(shù).其中1-9

      是真正的參數(shù)名,"$"符只是用來標(biāo)識變量的替換.

      位置變量$0指命令對應(yīng)的可執(zhí)行名.

      其它的還有:

      $# 送給命令的參數(shù)個數(shù)

      $@ 所有的參數(shù),每個用雙括號括起

      $* 所有的參數(shù),用雙括號括起

      3.與Shell有關(guān)的變量

      (1) Shell自身設(shè)置的一些常用變量:

      LINENO 正在執(zhí)行的命令在腳本中的行號

      PWD 用戶當(dāng)前目錄的全名

      OLDPWD 最近一次執(zhí)行cd之前,用戶當(dāng)前目錄的全名

      PPID 父進(jìn)程ID

      $ 當(dāng)前進(jìn)程ID

      RANDOM 隨機(jī)數(shù)(范圍0-32767)

      SECONDS Bash Shell的運行時間,單位是秒

      REPLY select和read命令使用,以后會講到

      OPTARG

      ORTIND 這兩個變量由getopt命令設(shè)置

      UID 當(dāng)前用戶的User ID

      _ 上一條命令使用的最后一個參數(shù)

      (2) 影響Shell行為的一些常用環(huán)境變量:

      PATH 命令搜索路徑,以冒號為分隔符.注意與DOS下不同的是,

      當(dāng)前目錄不在系統(tǒng)路徑里

      HOME 用戶home目錄的路徑名,是cd命令的默認(rèn)參數(shù)

      COLUMNS 定義了命令編輯模式下可使用命令行的長度

      EDITOR 默認(rèn)的行編輯器

      VISUAL 默認(rèn)的可視編輯器

      FCEDIT 命令fc使用的編輯器

      HISTFILE 命令歷史文件

      HISTSIZE 命令歷史文件中最多可包含的命令條數(shù)

      HISTFILESIZE 命令歷史文件中包含的最大行數(shù)

      IFS 定義SHELL使用的分隔符

      LOGNAME 用戶登錄名

      MAIL 指向一個需要SHELL監(jiān)視其修改時間的文件.當(dāng)該文件修改后,

      SHELL將發(fā)消息You hava mail給用戶

      MAILCHECK SHELL檢查MAIL文件的周期,單位是秒

      MAILPATH 功能與MAIL類似.但可以用一組文件,以冒號分隔,每個文件后

      可跟一個問號和一條發(fā)向用戶的消息

      SHELL SHELL的路徑名

      TERM 終端類型

      TMOUT SHELL自動退出的時間,單位為秒,若設(shè)為0則禁止SHELL自動退出

      PROMPT_COMMAND 指定在主命令提示符前應(yīng)執(zhí)行的命令

      PS1 主命令提示符

      PS2 二級命令提示符,命令執(zhí)行過程中要求輸入數(shù)據(jù)時用

      PS3 select的命令提示符

      PS4 調(diào)試命令提示符

      MANPATH 尋找手冊頁的路徑,以冒號分隔

      LD_LIBRARY_PATH 尋找?guī)斓穆窂?以冒號分隔

      bash變量賦值

      例子:經(jīng)常在configure腳本中,會出現(xiàn)以下類似的語句,都表示什么意思呢?

      if test -n "${ZSH_VERSION set}"; then

      ac_env_build_alias_set=${build_alias set}

      test "${ac_configure_args0 set}" != set

      答案及擴(kuò)展:

    變量賦值方式

    str 沒有賦值

    str 為空字符串

    str 為非空字符串

    備注

    var=${str-expr} var=expr var=$str var進(jìn)行設(shè)置
    var=${str expr} var=$str var=expr var進(jìn)行設(shè)置,varstr要不都取值,要不都不取值。雖然取值不同
    var=${str=expr} str=expr
    var=expr
    str 不變
    var=$str
    varstr進(jìn)行設(shè)置,

    var str保持一致

    var=${str?expr} expr 輸出至 stderr var=str var進(jìn)行設(shè)置
    var=${str:-expr} var=expr var=$str  
    var=${str: expr} var= var=expr  
    var=${str:=expr} str=expr
    var=expr
    str 不變
    var=$str
     
    var=${str:?expr} expr 輸出至 stderr

      Bash字符串的操作

      (一)字符串的替換

      (1)

      ${變量1/查找字符/替換字符}

      (說明一下,這個操作中除了第一個參數(shù)是變量外其它兩個都是字符;還有一點就是這個操作并不是把“變量1”中的字符替換了,詳見例子)

      例:

      str1=abcABCabc123ABC

      echo ${str1/bcA/aaa}#這里的abc和aaa都是字符串,而str1是變量,并且這個操作過后str1里的字符串長度不會減少,只是產(chǎn)生了一個 新的字串。

      (2)

      ${變量1/#查找字符/替換字符}

      (說明一下,這個操作上和面的是一樣的,只不過是從左邊開始匹配,并且必須從左邊第一個字符開始)

      例:

      echo ${str1/#bcA/aaa}#這個例子中并不會把bcA換成aaa因為b不是左邊第一個開頭字符

      echo ${str1/#abc/aaa}#這樣才行

      (3)

      ${變量1/%查找字符/替換字符}

      (與(2)相反,是結(jié)尾最后一個字符要匹配才行)

      例:

      echo ${str1/:BC/aaa}#abcABCabc12aaa

      (3)

      ${變量1//查找字符/替換字符}

      全部替換

      (二)取子串

      (1)${變量1:位置}

      (說明一下,默認(rèn)是從左邊開始,如果“位置”為負(fù)數(shù),則是從右邊的第“位置”個字符開始,并且第一個位置為0;從“位置”開始取子串到最后)

      例:

      str1=abcABCabc123ABC

      echo ${str1:(-3)}#會輸出ABC

      (2)${變量1:開始位置:結(jié)束位置}

      (3)如果“變量1”為“*”或“@”,“位置”所表示的是第幾個參數(shù)。

      (三)字符串移動

      (1)${字串#匹配字串}

      (說明一下,這個是從左邊第一個開始匹配,剝?nèi)プ疃?ldquo;匹配字串”)

      例:

      str1=abcABCabc123

      echo ${str1#a*c}#輸出ABCabc123

      (2)${字串##匹配字串}

      (說明一下,這個是從左邊第一個開始匹配,剝?nèi)プ铋L“匹配字串”)

      str1=abcABCabc123

      echo ${str1#a*c}#輸出123

      echo ${str1#b*c}#輸出abcABCabc123,因為沒有從第一個開始匹配

      (3)${字串%匹配字串}

      (4)${字串%%匹配字串}

      (說明一下,這與上面的(1)(2)是正好相反的,是從最后一個開始匹配的)

      (四)字符串長度

      ${#字串}

      例:

      str=abcdefg

      echo ${#str}#輸出7

    【linux shell編程變臉賦值和字符串操作】相關(guān)文章:

    Linux shell常用命令匯總10-26

    Linux系統(tǒng)shell工具打印輸出08-16

    Linux Shell文本處理工具10-08

    Linux認(rèn)證操作技巧10-10

    Linux操作試題及答案08-01

    Linux中常用操作命令10-17

    Linux操作系統(tǒng)概述06-22

    數(shù)控車床編程與操作08-21

    《PHP字符串操作》收集整理08-08

    Linux認(rèn)證基礎(chǔ)知識:linux操作系統(tǒng)目錄結(jié)構(gòu)07-10