Shell編程之變數

【1】Bash變數

●什麼是變數與變數分類

◆在Bash中,變數的默認類型都是字元串

◆變數名在有效的範圍內必須是唯一的

●用戶自定義變數

◆變數自定義的

◆定義變數

★變數名=變數值;x=5 #「=」兩邊不能有空格

name="ao"

◆變數調用

★echo $變數名;echo $x #調用變數需要在變數前+$

echo $name

◆變數疊加

★x=123

x="$x"123

echo $x ;123123

◆變數查看

★set 查詢系統能夠所有生效變數

-u 調用未聲明變數時會報錯

●環境變數

◆這種變數中主要保存的是和系統操作環境相關的數據。變數可以自定義,但是對系統生效的環境變數名和變數作用是固定的

◆用戶自定義變數只在當前的shell中生效,環境變數在當前shell和這個shell的所有子shell中生效

Advertisements

◆對系統生效的環境變數名和變數作用是固定的

◆設置環境變數

★export 變數名=變數值

◆變數查看

★env

◆常用環境變數

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

echo $PATH #查看PATH環境變數

PATH="$PATH":/root/sh #增加PATH變數值

★PS1變數:命令提示符設置

◆當前語系查詢

★locale #查詢當前語系系統

LANG :定義系統主語系的變數

LC_ALL:定義整體語系的變數

★locale -a #查看Linux支持的所有語系

●位置參數變數

◆這種變數主要是用來向腳本當中傳遞參數或數據的,變數名不能自定義,變數作用是固定的

◆$n ★n為數字,$0代表命令本身,$!-$9代表第一到第九個參數,10以上的參數需要用大括弧包含,如${10}

Advertisements

◆$* ★這個變數代表命令行中所有的參數,$*把所有的參數看成一個整體

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

◆$# ★這個變數代表命令行中所有參數的個數

◆#!/bin/bash

num1=$1 #第一個參數的值

num2=$2

num=$(($num1+$num2)) #將$1+$2的值相加

echo "\$ :$num" #「\」轉義符

./canshu1.sh 12 23

◆ #!/bin/bash

for i in "$@"

do

echo $i #循環輸出"$@"中的值

done

for i in "$*"

do

echo $i #循環輸出"$*"中的值

done

●預定義變數

◆是Bash中已經定義好的變數,變數名不能自定義,變數作用也是固定的

◆$? ★最後一次執行命令的返回狀態,正確執行為0,不能正確為 非0

◆$$ ★當前進程的PID號

◆$! ★後台運行的最後一個進程的PID號

◆ #!/bin/bash

echo "\$$ = $$" #當前進程

echo "\$! = $!" #最後一個進程

●接受鍵盤輸入

◆read [選項][變數名]

★選項

-p「提示信息」:在等待read輸入時,輸出提示信息

-t 秒數:read命令會一直等待用戶輸入,使用此選項可以指定等待時間

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

-s :隱藏輸入的數據,適用於機密信息的輸入

◆ #!/bin/bash

read -p "input you name: "-t 15 -n 6 -s name

echo $name

Advertisements

你可能會喜歡