(四)bash中的運算符

8: Bash  的變量和運算符linux

1:Bash變量與其餘編程語言的不一樣shell

(1)在 Bash 中,變量的默認類型都是字符串型,若是要進行數值運算,則必修指定變量類型爲數值型。編程

(2)變量用等號鏈接值,等號左右兩側不能有空格。bash

(3)變量的值若是有空格,須要使用單引號或雙引號包括。如:「test="hello world!"」。其中雙引號括起來的內容「$」、「\」和反引號都擁有特殊含義,而單引號括起來的內容都是普通字符。 在變量的值中,可使用「\」轉義符。 若是須要增長變量的值,那麼能夠進行變量值的疊加。不過變量須要用雙引號包含"$變量名dom

"或用${變量名}包含變量名ssh

 

2:變量的分類編程語言

  用戶自定義變量:這種變量是最多見的變量,由用戶自由定義變量名和變量的值。命令行

  環境變量:這種變量中主要保存的是和系統操做環境相關的數據,好比當前登陸用戶,用戶的家目錄,命令的提示符等。環境變量的變量名能夠自由定義,可是通常對系統起做用的環境變量的變量名是系統預先設定好的。進程

  位置參數變量:這種變量主要是用來向腳本當中傳遞參數或數據的,變量名不能自定義,變量做用是固定的。ip

  預約義變量:是 Bash 中已經定義好的變量,變量名不能自定義,變量做用也是固定的。

 

(1)自定義變量

用戶自定義變量:#等號左右兩側不能有空格

[root@localhost ~]# name=123

echo $name

變量的增刪改查:

增長 :name=123,

改:name=567直接覆蓋,

刪除:unset name 刪除變量,能夠理解爲釋放變量的內存空間

查詢:查看變量是否已經定義,或者系統定義了多少變量。

 

set 命令[選項]

選項:

-u:  若是設定此選項,調用未聲明變量時會報錯(默認無任何提示)

-x: 若是設定此選項,在命令執行以前,會把命令先輸出一次

 

(2)系統環境變量

1:環境變量設置

export age="18"

 

2: 環境變量查詢和刪除

env 命令和 set 命令的區別是,set 命令能夠查看全部變量,而 env 命令只能查看環境變量。

[root@localhost ~]# unset gender

[root@localhost ~]# env | grep gender

 

3:系統默認環境變量

HOSTNAME=localhost.localdomain 主機名

SHELL=/bin/bash 當前的 shell 

TERM=linux  終端環境

HISTSIZE=1000   歷史命令條數

SSH_CLIENT=192.168.4.159 4824 22  當前操做環境是用 ssh 鏈接的,這裏記錄客戶端 ip

SSH_TTY=/dev/pts/1

例如:PATH="$PATH":/root/sh 修改系統bin執行路徑添加sh

 

4: LANG 語系變量

LANG 變量定義了 Linux 系統的主語系環境,這個變量的默認值是:

[root@localhost src]# echo $LANG

 

(3)位置參數變量

$n:  n 爲數字,$0 表明命令自己,$1-$9 表明第一到第九個參數,十以上的參數須要用大括號包含,如${10}.

$*  這個變量表明命令行中全部的參數,$*把全部的參數當作一個總體.

$@  這個變量也表明命令行中全部的參數,不過$@把每一個參數區分待

$#  這個變量表明命令行中全部參數的個數.

$1表示的是第一個參數,$0表示的是命令自己。

[root@localhost sh]# more parment.sh

#!/bin/bash

 

for i in $*  #循環輸出

    do

      echo "The paramenters is : $i"

done

 

for y in "$@"

#一樣 in 後面的有幾個值,for 循環幾回,每次都把值賦予變量 y

#但是 Shell 中把「$@」中的每一個參數都當作是獨立的,因此「$@」中有幾個參數,就會循環幾回

do

echo "The parameter$x is: $y"

#輸出變量 y 的值

x=$(( $x +1 ))

#然變量 x 每次循環都加 1,爲了輸出時看的更清楚

done

 

(4)預約義變量:

$?  最後一次執行的命令的返回狀態。若是這個變量的值爲 0,證實上一個命令正確執行;若是這個變量的值爲非 0(具體是哪一個數,由命令本身來決定),則證實上一個命令執行不正確了。

$$  當前進程的進程號(PID)

$!  後臺運行的最後一個進程的進程號(PID)

 

9: 接收鍵盤輸入

read [選項] [變量名]

選項:

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

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

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

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

 

變量名:變量名能夠自定義,若是不指定變量名,會把輸入保存入默認變量 REPLY。若是隻提供了一個變量名,則整個輸入行賦予該變量。若是提供了一個以上的變量名,則輸入行分爲若干字,一個接一個地賦予各個變量。

相關文章
相關標籤/搜索