變量

變量就是用來儲存信息的

1、自定義變量,本地變量

2、環境變量

3、位置變量

4、特殊變量


變量的命名規則

    變量名由字母、數字、下劃線組成。不能夠以數字開頭

本地變量也稱爲自定義變量


1、變量賦值

   變量名=值   //注意:等號兩邊一定不能有空格

   # a=25

   # echo $a

25

  反例:

   # b = 52

bash: b: command not found

2、變量的聲明(瞭解)   declare

  declare 

       -a:表示定義數組

       -r:定義只讀變量

       -i:定義整型變量

  1)聲明一個數組:

     # declare -a arr

     # arr[1]=10

     # arr[10]=100

  2)定義一個只讀變量

    # declare -r a=123

    # echo $a

123

    # a=456

bash: a: readonly variable


3、變量的分類

    1)本地變量

    2)環境變量

      變量的作用域:也叫變量的作用範圍

局部變量:本地變量比較自私,只能作用於當前shell

全局變量:環境變量是無私的,能夠作用於當前shell及由他派生的子shell

      a、顯示所有變量

    # set

 PS1='[\u@\h \W]\$ '  //命令提示符 

 PS2='> '           //命令未輸入完成的標識

      b、查看環境變量

# env

      

      (1)本地變量定義

  變量名=值

      (2)環境變量定義

  export 變量名=值

        對於已經賦值的變量,如何變爲環境變量?export

  # a=250

  # echo $a

250

  # export a

  查看當前是第幾級shell?

# echo $SHLVL

    小實驗:   

# uplook="hello"

# export uplook   //導出爲環境變量

# ksh  //打開一個子shell

# echo $uplook

hello

# uplook="ha"     //在子shell中修改變量值  

# echo $uplook

ha

# exit

# echo $uplook   //父shell中值未改變

hello

   小實驗說明:a、將變量導出成環境變量後,變量的值可以作用於當前shell及它的子shell;

      b、若子shell中修改該變量的值,只會影響到子shell的子shell,並不會影響到它的父shell。

4、調用變量、查看變量的值

   echo $PATH

   

5、取消變量

   # unset 變量名

   # a=250

   # unset a

   # echo $a


位置變量

# cat /etc/passwd /etc/group

   cat:$0

   /etc/passwd:$1 

   /etc/group:$2

小腳本

# vim posivar.sh

  #!/bin/bash

  echo '$0=' $0

  echo '$1=' $1

  echo '$2=' $2

  echo '$3=' $3

  echo '$4=' $4

  echo '$5=' $5

  echo '$6=' $6

  echo '$7=' $7

  echo '$8=' $8

  echo '$9=' $9

  echo '$10=' $10

  echo '$10=' ${10}

  echo '$#=' $#

  echo '$@=' $@

  echo '$*=' $*

# chmod +x posivar.sh

# ./posivar.sh a b c d e f g h i j k

$0= ./posivar.sh

$1= a

$2= b

$3= c

$4= d

$5= e

$6= f

$7= g

$8= h

$9= i

$10= a0

$10= j

$#= 11

$@= a b c d e f g h i j k

$*= a b c d e f g h i j k

$0 —— 表示當前運行的腳本或命令名

$1-${10} —— 表示腳本或命令的位置參數

$# —— 參數的個數

$@、$* —— 參數的列表

特殊變量:

$?  —— 上一條命令的返回結果,退出狀態

   如果返回值是0,命令執行成功

   如果返回值非0,命令執行失敗


$$ —— 查看當前shell的PID

   # echo $$

10273

!$和$_ —— 表示上一條命令的最後一個參數

   # ls /tmp/

   # cd !$

     cd /tmp/



變量的引用

  {}  

     爲了避免發生歧義,將變量括起來

     username="abcd"

     id ${username}f



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章