欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

《鳥哥的Linux私房菜》學(xué)習(xí)筆記(8)——bash腳

系統(tǒng) 2144 0

一、變量命名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

????1、只能包含字母、數(shù)字和下劃線,并且不能以數(shù)字開頭,
????2、不應(yīng)該跟系統(tǒng)中已有的環(huán)境變量重名
????3、命名要有含義

二、變量賦值 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

變量名稱=值var_name=value?等號(hào)兩邊不能有空格

      
        
          [root@hao ~]#
        
      
       NAME=
      
        jerry


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $NAME

jerry
      
    

三、bash:變量類型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????????????????????????????

1、環(huán)境變量

  腳本在執(zhí)行時(shí)會(huì)啟動(dòng)一個(gè)子shell進(jìn)程。命令行中啟動(dòng)的腳本會(huì)繼承當(dāng)前shell環(huán)境變量,也就是說環(huán)境變量的作用域?yàn)楫?dāng)前shell進(jìn)程及其子shell進(jìn)程。系統(tǒng)自動(dòng)執(zhí)行的腳本(非命令行啟動(dòng))則需要自我定義各環(huán)境變量。可以使用export設(shè)置環(huán)境變量。

      export VARNAME=VALUE 或者 VARNAME=VALUE export VARNAME
    

?

      
        
          [root@hao ~]#
        
      
       NAME=
      
        jerry


        
          
            [root@hao 
          
        
      
      
        
          ~
        
      
      
        
          
            ]#
          
        
        export NAME


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $NAME

jerry


        
          
            [root@hao 
          
        
      
      
        
          ~
        
      
      
        
          
            ]#
          
        
         bash


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $NAME

jerry


        
          
            [root@hao 
          
        
      
      
        
          ~
        
      
      
        
          
            ]#
          
        
        bash                     

[root@hao 
      
      ~]# 
      
        echo
      
      
         $NAME

jerry
        
[root@hao ~]# pstree
init-+-NetworkManager-+-dhclient
??? ...
???? |-sshd---sshd---sshd---bash--- su---bash---bash---bash---pstree
???? |-udevd---2*[udevd]
???? `-wpa_supplican

2、本地變量(局部變量)

變量一定是進(jìn)程的變量,因此在一個(gè)shell中聲明的變量在其他的shell中不可用,并且在其子shell中也不可以得到。引用變量要加${varname},也可以不加{}。

      
        
          [root@hao ~]#
        
      
      NAME=
      
        jerry


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $NAME

jerry


        
          
            [root@hao 
          
        
      
      
        
          ~
        
      
      
        
          
            ]#
          
        
         bash


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $NAME




        
          
            [root@hao 
          
        
      
      
        
          ~
        
      
      
        
          
            ]#
          
        
         exit

exit


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $NAME

jerry
      
    

本地變量:VARNAME=VALUE,作用域:整個(gè)bash進(jìn)程。

局部變量 :local VARNAME=VALUE,作用域:當(dāng)前代碼段。

3、位置變量

 $n

例:寫一個(gè)腳本,能接受一個(gè)參數(shù)(文件路徑),判定此參數(shù)是否是一個(gè)存在的文件,如果是就顯示“ok”

      
        
          [root@hao ~]#
        
      
       nano filetest.
      
        sh
      
      
        
           [root@hao ~]#
        
      
      
        cat
      
       filetest.
      
        sh
      
      
         

#
      
      ! /bin/
      
        bash

#


      
      
        if
      
       [ -e $
      
        1
      
       ];
      
        then
      
      
        echo
      
      
        "
      
      
        ok
      
      
        "
      
      
        else
      
      
        echo
      
      
        "
      
      
        no such file
      
      
        "
      
      
        fi
      
      
        
           [root@hao ~]#
        
      
      
        chmod
      
       +x filetest.
      
        sh
      
      
        
           [root@hao ~]#
        
      
       ./filetest.
      
        sh
      
        /etc/
      
        fstab

ok


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
       ./filetest.
      
        sh
      
        /etc/
      
        fstabs

no such 
      
      
        file
      
    

shift, 每次shift都會(huì)剔除一個(gè)參數(shù) shift n表示剔除n 個(gè)

      
        
          [root@hao ~]#
        
      
       nano filetest1.
      
        sh
      
      
        
           [root@hao ~]#
        
      
      
        cat
      
       filetest1.
      
        sh
      
      
        

#
      
      !/bin/
      
        bash


      
      
        echo
      
       $
      
        1
      
      
        shift
      
      
        echo
      
       $
      
        1
      
      
        shift
      
      
        echo
      
       $
      
        1
      
      
        
           [root@hao
        
         ~]#
      
      
        chmod
      
       +x filetest1.
      
        sh
      
      
        
           [root@hao ~]#
        
      
      ./filetest1.
      
        sh
      
      
        1
      
      
        2
      
      
        3
      
      
        1
      
      
        2
      
      
        3
      
      
        
          
            
            
          
        
      
    

4、特殊變量(系統(tǒng)變量)

用來保存某些特殊數(shù)據(jù):

  $?: 保存上一個(gè)命令的執(zhí)行狀態(tài)返回值(0-255)。0為正確,其他為錯(cuò)誤。其中1,2,127系統(tǒng)預(yù)留,其他的可以自定義。

      
        
          [root@hao ~]#
        
      
      
        ls
      
       /
      
        var

account  crash  db     games  lib    lock  mail  opt       run    tmp  yp

cache    cvs    empty  gdm    local  log   nis   preserve  spool  www


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
       $?


      
        0
      
      
        
           [root@hao ~]#
        
      
      
        ls
      
       /
      
        varr


      
      
        ls
      
      : cannot access /varr: No such 
      
        file
      
      
         or directory


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
       $?


      
        2
      
    

如果只想看返回的狀態(tài)值而不想看輸出結(jié)果,則只需將輸出重定向至數(shù)據(jù)黑洞/dev/null

      
        
          [root@hao ~]#
        
      
      
        ls
      
       /varr &> /dev/
      
        null
      
      
        
           [root@hao ~]#
        
      
      
        echo
      
       $?


      
        2
      
    

  $#:參數(shù)的個(gè)數(shù)

  $*:參數(shù)列表

  $@:參數(shù)列表(與上面的有不同)

例:寫一個(gè)腳本,能接受一個(gè)參數(shù)(文件路徑),判定此參數(shù)是否是一個(gè)存在的文件,如果是就顯示“ok”

      
        
          [root@hao ~]#
        
      
       nano filetest.
      
        sh
      
      
        
           [root@hao
        
      
      ~]# 
      
        cat
      
       filetest.
      
        sh
      
      
         

#
      
      ! /bin/
      
        bash

#


      
      
        echo
      
      
         $#


      
      
        echo
      
       $*


      
        echo
      
      
         $@


      
      
        if
      
       [ $# -lt 
      
        1
      
       ];
      
        then
      
      
        echo
      
      
        "
      
      
        Usage:./filetest.sh ARG1 ARG2 ...
      
      
        "
      
      
        

    exit 
      
      
        7
      
      
        fi
      
      
        if
      
       [ -e $
      
        1
      
       ];
      
        then
      
      
        echo
      
      
        "
      
      
        ok
      
      
        "
      
      
        else
      
      
        echo
      
      
        "
      
      
        no such file
      
      
        "
      
      
        fi
      
      
        
           [root@hao ~]#
        
      
      
        chmod
      
       +x filetest.
      
        sh
      
      
        
           [root@hao ~]#
        
      
       ./filetest.
      
        sh
      
      
        0
      
      
        





Usage:.
      
      /filetest.
      
        sh
      
       ARG1 ARG2 ...
      
[root@hao ~]# ./filetest.sh? /etc/fstab /etc/fstabs
2
/etc/fstab /etc/fstabs
/etc/fstab /etc/fstabs
ok

四、撤銷變量 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

      
        
          [root@hao ~
        
      
      
        
          
            ]#
          
        
        unset NAME


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
       $NAME
      

五、查看當(dāng)前shell變量 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 查看當(dāng)前shell所有變量,包含環(huán)境變量和本地變量

      
        
          [root@hao ~
        
      
      
        
          
            ]#
          
        
        set

BASH
      
      =/bin/
      
        bash

BASHOPTS
      
      =
      
        checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath

BASH_ALIASES
      
      =
      
        ()

...
      
    

查看當(dāng)前shell環(huán)境變量 printenv env 或者export

      
        
          [root@hao ~
        
      
      
        
          
            ]#
          
        
        printenv

HOSTNAME
      
      =
      
        hao

SHELL
      
      =/bin/
      
        bash

TERM
      
      =
      
        xterm

...
      
    

六、追加shell變量 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

      
        
          [root@hao ~]#
        
      
      ANIMAL=
      
        pig


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      ANIMAL=
      
        $ANIMAL:goat


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $ANIMAL

pig:goat


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $PATH


      
      /usr/lib64/qt-
      
        3.3
      
      /bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/
      
        bin


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      export PATH=$PATH:/usr/local/apache/
      
        bin


        
          
            [root@hao 
          
        
      
      
        
          ~]# 
        
      
      
        echo
      
      
         $PATH


      
      /usr/lib64/qt-
      
        3.3
      
      /bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/
      
        bin


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
       export PATH=/usr/local/mysql/
      
        bin:$PATH


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        echo
      
      
         $PATH


      
      /usr/local/mysql/bin:/usr/lib64/qt-
      
        3.3
      
      /bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin
    

七、第一個(gè)腳本程序 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

首先創(chuàng)建腳本程序first.sh,腳本程序的第一行要指定程序的魔數(shù),#!加上解釋器的路徑。然后賦予其執(zhí)行權(quán)限,之后執(zhí)行,執(zhí)行時(shí)候要加上路徑,因?yàn)樵跊]有給路徑時(shí),默認(rèn)去path中去找該命令是否存在。

      
        
          [root@hao ~]#
        
      
      
        cat
      
       first.
      
        sh
      
      
        

#
      
      !/bin/
      
        bash


      
      
        ls
      
       /
      
        var


      
      
        cat
      
       /etc/
      
        inittab


        
          
            [root@hao 
          
        
      
      
        
          ~]#
        
      
      
        chmod
      
       +x first.
      
        sh
      
      
        
           [root@hao ~]#
        
      
      ./first.
      
        sh
      
      
        

account  crash    db     games  lib    lock  mail  opt       run      tmp  yp

cache     cvs    empty  gdm    local  log   nis     preserve  spool  www

# inittab is only used by upstart 
      
      
        for
      
      
         the default runlevel.

#

# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

#

# System initialization is started by 
      
      /etc/init/
      
        rcS.conf

#

# Individual runlevels are started by 
      
      /etc/init/
      
        rc.conf

#

# Ctrl
      
      -Alt-Delete is handled by /etc/init/control-alt-
      
        delete.conf

#

# Terminal gettys are handled by 
      
      /etc/init/tty.conf and /etc/init/
      
        serial.conf,

# with configuration 
      
      
        in
      
       /etc/sysconfig/
      
        init.

#

# For information on how to 
      
      
        write
      
      
         upstart event handlers, or how

# upstart works, see init(
      
      
        5
      
      ), init(
      
        8
      
      ), and initctl(
      
        8
      
      
        ).

#

# Default runlevel. The runlevels used are:

#   
      
      
        0
      
       -
      
         halt (Do NOT set initdefault to this)

#   
      
      
        1
      
       -
      
         Single user mode

#   
      
      
        2
      
       - Multiuser, without NFS (The same as 
      
        3
      
      , 
      
        if
      
       you 
      
        do
      
      
         not have networking)

#   
      
      
        3
      
       -
      
         Full multiuser mode

#   
      
      
        4
      
       -
      
         unused

#   
      
      
        5
      
       -
      
         X11

#   
      
      
        6
      
       -
      
         reboot (Do NOT set initdefault to this)

# 


      
      
        id
      
      :
      
        5
      
      :initdefault:
    

《鳥哥的Linux私房菜》學(xué)習(xí)筆記(8)——bash腳本編程之變量


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 精品一区二区在线观看视频 | 日韩国产一区二区 | 成人国产精品免费观看视频 | 久久久国产99久久国产一 | 五月天色婷婷在线 | 精品欧美乱码久久久久久 | 精品免费久久久久久成人影院 | 欧美高清视频一区 | 99久久精品免费 | 91精品国产免费久久久久久 | 美女污污视频网站 | 欧美日韩精品一区二区在线播放 | 日韩免费一区二区 | 日韩午夜三级 | 天天碰天天 | 亚洲精品人成网在线播放蜜芽 | 亚洲zscs综合网站 | 性夜影院爽黄a爽在线看香蕉 | 日本男人天堂 | 亚洲无线一二三四手机 | 免费无遮挡很爽很污很黄 | 国产99精品在线观看 | 中文字幕亚洲一区 | 欧美电影网| 奇米第四色网站 | 免费看a网站 | 北岛玲亚洲一区在线观看 | 色婷婷久久综合中文久久一本 | 看中国国产一级毛片真人视频 | 韩国美女激情视频一区二区 | 久久久久久久久久免观看 | 国产精品久久久久久亚洲伦理 | 婷婷激情综合色五月久久竹菊影视 | 欧美日韩在线看 | www.av视频| 国产一三区A片在线播放 | 国产精品视频网站 | 99久久精品费精品国产一区二区 | 亚洲最黄视频 | 98香蕉草草视频在线精品看 | 亚洲一区二区三区深夜天堂 |