shell Bash變數

Aring88發表於2020-11-04

一、什麼是變數與變數分類

1,什麼是變數
  • 變數是計算機記憶體的單元,其中存放的值可以改變
  • 變數讓你能夠把程式中準備使用的每一段資料都賦給一個簡短、易於記憶的名字,因此他們十分有用
2,變數命名
(1)變數名必須以字母或者下劃線開頭,名字中間只能由字母、數字和下劃線組成
(2)變數名的長度不得超過255個字元
(3)變數名在有效的範圍內必須是唯一的
(4)在Bash中,變數的預設型別都是字串型
3,變數按照儲存資料分類
  • (1)字串型
  • (2)整形
  • (3)浮點型
  • (4)日期型
4,變數分類
  • (1)使用者自定義變數

  • (2)環境變數:主要儲存的是和系統操作環境相關的資料。
    變數可以自定義,但是對系統生效的環境變數名和變數作用是固定的

  • (3)位置引數變數:用來向指令碼當中傳遞引數或資料的,變數名不能自定義,變數作用是股東的

  • (4)預定義變數:是Bash中已經定義好的變數,變數名不能自定義,變數作用也是固定的


二、使用者自定義變數

1,格式
  • 變數名=變數值
    • ps:
      • =左右不能加空格

      • 變數值有空格,要用“”括起來

2,變數呼叫
  • $變數名
3,變數的疊加(同一個應用範圍內,變數名是唯一的)
  • (1)變數名=“ 變 量 名 ” 疊 加 值 x = " 變數名”疊加值 x=" x="x"123 給$x變數疊加123
  • (2)變數名= 變 量 名 789 x = {變數名}789 x= 789x={x}789 給$x變數疊加789
4,變數檢視
  • set 檢視系統所有變數,包括環境變數

    • -u 如果設定此選項,呼叫為生命變數時會報錯(預設無提示)
5,刪除變數
  • unset 變數名 變數名前不用加$

三、環境變數

1,環境變數和使用者自定義變數的區別
  • 使用者自定義變數只在當前的Shell中生效————區域性變數

  • 環境變數在當前Shell和這個Shell的所有子Shell中生效————全域性變數

  • pstree 檢視程式樹

2,設定環境變數
  • (1)export 變數名=變數值

  • (2)變數名=變數值
    export 變數名

3,檢視環境變數
  • set 檢視全部變數(包括環境變數)

  • env 檢視環境變數

4,刪除環境變數
  • unset 變數名
5,常用環境變數
HOSTNAME	主機名
	
	SHELL		當前的shell

	TERM		終端環境

	HISTSIZE		歷史命令條數

	SSH_CLIENT	當前操作環境是用ssh連結,這裡記錄客戶端ip

	SSH_TTY		ssh連結的終端時pst/1

	USER		當前登入的使用者
6,PATH環境變數

PATH變數:系統查詢命令的路徑

  • (1)echo $PATH 檢視PATH環境變數

  • (2)PATH=“$PATH”:/root/sh 增加PATH變數的值


四、位置引數變數

1,位置引數變數
$n		n代表數字,$0代表命令本身,$1-$9代表第一到第九個引數,十以上的引數需要用大括號包含,如${10}

$*		這個變數代表命令列中所有的引數,$*把所有的引數看成一個整體(用for迴圈,只會進行一次)

$@		這個變數也代表命令列中所有的引數,不過$@把每個引數區分對待

$#		這個變數代表命令列中所有引數的個數

五、預定義變數

	$?		最後一次執行的命令返回的狀態。為0,證明上個命令正確執行,非0,證明上個命令執行不正確

	$$		當前程式的程式號(PID)
	
	$!		後臺執行的最後一個程式的程式號(PID)
1、read

read 選項 變數名

-p	‘提示資訊’:在等待read輸入時,輸出提示資訊

-t	   秒數,使用此項可以指定等待時間

-n	   字元數,read命令字接收指定的字元數,就會執行

-s	    隱藏輸入的資料,適用於機密資訊輸入(密碼)

相關文章