亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
        當(dāng)前位置:操作系統(tǒng) > Linux > 文章內(nèi)容
        

      Linux操作系統(tǒng)學(xué)習(xí)筆記管理初識Shell(2)

       [ 2016年6月20日 ] 【

      Shell變量

      Shell變量和其他語言的變量含義大同小異,就是可以存放不同的內(nèi)容,它也為靈活管理Linux系統(tǒng)提供特定參數(shù)。一般有兩層意思:變量名:使用固定的名稱,由系統(tǒng)預(yù)設(shè)或用戶定義;變量值:能夠根據(jù)用戶設(shè)置、系統(tǒng)環(huán)境變化而變化。

      Shell變量的種類:

      用戶自定義變量:由用戶自己定義、修改和使用

      環(huán)境變量:由系統(tǒng)維護(hù),用于設(shè)置用戶的Shell工作環(huán)境,只有極少數(shù)的變量用戶可以修改

      預(yù)定義變量:Bash預(yù)定義的特殊變量,不能直接修改

      位置變量:通過命令行給程序傳遞執(zhí)行參數(shù),如ls -l  /etc/httpd,其中后面兩個(gè)參數(shù)可視為位置參數(shù)。

      變量的賦值與引用:

      定義新的變量名要以英文字母或下劃線開頭,區(qū)分大小寫,格式為:變量名=變量值

      查看變量的值:echo  $變量名

      [root@localhost ~]# DAY=Sunday 
      [root@localhost ~]# echo $DAY   ==>通過$符號引用指定名稱的變量值
      Sunday 
      [root@localhost ~]#

      (注意:在查看變量時(shí),如果變量名容易和后邊的字符串連在一起導(dǎo)致混淆,則應(yīng)該使用大括號將變量名括起來,使用形式為:${變量名}  ,例如:  若已知變量Var的值為Benet,則執(zhí)行“echo $Var3.0”命令后將顯示結(jié)果“.0”而不是“Benet3.0”,因?yàn)樵谠撁钪校瑫䦟ⅰ癡ar3”當(dāng)成變量名(默認(rèn)未定義此變量)。若希望正確顯示“Benet3.0”的輸出結(jié)果,則需要執(zhí)行“echo ${Var}3.0”)

      [root@localhost ~]# Var =Benet
      [root@localhost ~]# echo $Var
      Benet
      [root@localhost ~]# echo $Var3.0
      .0
      [root@localhost ~]# echo ${Var}3.0
      Benet3.0
      [root@localhost ~]# 

         從鍵盤輸入內(nèi)容為變量賦值,格式為:read  [-p  "輸入信息"]  變量名

      [root@localhost ~]#read var
      haha    ==>這里等待輸入
      [root@localhost ~]#echo $var
      haha
      [root@localhost ~]#

          在給變量賦值時(shí),使用不同的引號操作的區(qū)別:

      1)使用雙引號時(shí),允許在雙引號的范圍內(nèi)使用“$”符號引用其他變量的值(變量引用)

      2)使用單引號時(shí),將不允許在單引號的范圍內(nèi)引用其他變量的值,“$”符號或者其他任何符號將作為普通字符看待

       

      [root@localhost ~]#name=linuxidc
      [root@localhost ~]#echo $name
      linuxidc
      [root@localhost ~]#myname="$name is me"  ==>這里使用的是雙引號
      [root@localhost ~]#echo $myname
      linuxidc is me   ==>將$name這個(gè)變量執(zhí)行出來了
      [root@localhost ~]#myname='$name is me'   ==>這里使用的是單引號
      [root@localhost ~]#echo $myname
      $name is me   ==>原樣顯示出來了,$name沒有執(zhí)行
      [root@localhost ~]#

       

      3)使用反撇號時(shí),允許將執(zhí)行特定命令的輸出結(jié)果賦值給變量(命令替換),反撇號中的內(nèi)容要求是可執(zhí)行的命令。需要嵌套使用時(shí),可以將反撇號改為 $( ... ) 的形式

           這么說吧,在一串命令中,在`之內(nèi)的命令會被先執(zhí)行,然后將其執(zhí)行出來的結(jié)果作為外部的輸入信息。

       

      [linuxidc@localhost ~]$ locate crontab
      /etc/anacrontab
      /etc/crontab
      /usr/bin/crontab
      /usr/share/man/man1/crontab.1.gz
      .....
      [linuxidc@localhost ~]$ ls -l `locate crontab`    ==>先執(zhí)行l(wèi)ocate crontab,再執(zhí)行l(wèi)s -l
      -rw-r--r-- 1 root root    298 2006-12-18 /etc/anacrontab
      -rw-r--r-- 1 root root    255 2006-07-15 /etc/crontab
      -rwsr-sr-x 1 root root 315416 2008-07-15 /usr/bin/crontab
      -rw-r--r-- 1 root root   1846 2008-07-15 /usr/share/man/man1/crontab.1.gz
      .....
      [linuxidc@localhost ~]$ 

       

       設(shè)置變量的作用范圍,格式:export  變量名

       一般情況下,父進(jìn)程的自定義變量是無法在子進(jìn)程中使用的,但是通過export將變量變成環(huán)境變量后,就能夠在子進(jìn)程下使用了。

       

      [root@localhost ~]#name=linuxidc
      [root@localhost ~]#echo $name
      linuxidc
      [root@localhost ~]# export name ==>輸出為全局變量
      [root@localhost ~]# zsh
      [root@localhost]~# echo $name
      linuxidc
      [root@localhost]~# exit
      [root@localhost root]# unset  name==>消除變量內(nèi)容
      [root@localhost root]# echo $name
      
      [root@localhost ~]#

      變量還有一個(gè)好處,當(dāng)您經(jīng)常訪問一個(gè)目錄時(shí),而且這個(gè)目錄比較長,可以將它付給一個(gè)簡單的變量,這樣進(jìn)入這個(gè)目錄時(shí)候只需cd  變量就行了。如work="~/temp/2013/test/",則進(jìn)入這個(gè)目錄只需cd  work。

      數(shù)值變量的運(yùn)算:

      之前講到過可以使用命令bc來打開一個(gè)計(jì)算器,其實(shí)Bash程序并不適合進(jìn)行強(qiáng)大的數(shù)學(xué)運(yùn)算,例如小數(shù)或指數(shù)運(yùn)算的,一般只能進(jìn)行簡單的整數(shù)運(yùn)算,若不使用bc,則也可以使用下列格式來進(jìn)行簡單數(shù)值計(jì)算:

      格式:expr  變量1  運(yùn)算符  變量2  [..運(yùn)算符  變量n...]

      expr命令常用的運(yùn)算符有:+、-、\*(注意要有\(zhòng))、/、%

      首頁 1 2 尾頁
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved