Linux基礎知識(15): Shell編程——變量


注:轉載請標明原文出處鏈接:https://xiongyiming.blog.csdn.net/article/details/106248606


1 變量概述

Shell與其他語言相比:

  1. php和jave主要實現功能;
  2. Shell可以簡化管理操作;

變量是計算機內存的單元,其中變量存放的值可以改變;
通俗的說,變量讓你能夠把程序中準備使用的每一段數據都賦給一個簡短、易於記憶的名字,方便實用


變量的命名規則
(1) 變量必須以字母或下劃線開頭、變量名中間的只能由字母、數字和下劃線組成;
(2) 變量名的長度不得超過255個字符;
(3) 變量名在有效的範圍內必須是唯一的;

注:在Shell中,變量的默認類型是字符類型。



2 變量的分類

Shell變量可以分爲用戶自定義變量、環境變量、未知參數變量、預定義變量
(1) 用戶自定義變量:用戶自己定義的變量。
(2) 環境變量:主要保存和系統相關的數據。環境變量可以自定義,但是對系統生效的環境變量名和變量的作用是固定的。
(3) 位置參數變量:主要是用來向腳本中傳遞參數或數據,變量作用是固定的。該變量名不能自定義。
(4) 預定義變量:是Shell中已經定義好的變量,變量作用是固定的。該變量名不能自定義。




3 用戶自定義變量

3.1 變量定義

變量定義命令格式爲: 變量名=變量值
例如:x=5
name= “xiao ming” #注意符號“=”有空格

在這裏插入圖片描述



3.2 變量調用

變量調用命令格式爲:echo $變量名

例如:

echo $x
echo $name

在這裏插入圖片描述


注:變量的默認類型爲字符型


在這裏插入圖片描述



3.3 變量疊加

變量的疊加命令格式爲: 變量名2=”$變量名1”疊加內容
或者爲:變量名2=${變量名1}疊加內容

在這裏插入圖片描述



3.4 變量查看

查詢系統所有定義的變量的命令爲:set

在這裏插入圖片描述

使用命令:set -u 表示調用未聲明的變量時會系統報錯



3.5 變量刪除

變量刪除命令格式: unset 變量名

在這裏插入圖片描述




4 環境變量

環境變量和用戶自定義變量的區別:

  1. 用戶自定義變量只在當前的Shell中生效;
  2. 環境變量在當前Shell和這個Shell的所有子Shell中生效。

注意: 變量可以自定義,但是對系統生效的環境變量名和變量的作用是固定的。


定義環境變量的命令格式:export 變量名=變量值

或者:

變量名=變量值
export 變量名

在這裏插入圖片描述


然後進入到子bash中,然後通過命令 pstree 查看


在這裏插入圖片描述


然後使用命名 set 來查看所有變量名,只能看到環境變量y和z,變量x不在當前bash中。


在這裏插入圖片描述


  1. set 命令查看所有變量
  2. env 命令查看環境變量

在這裏插入圖片描述


退出子bash使用命令:exit


在這裏插入圖片描述


常用的環境變量如下圖所示:


在這裏插入圖片描述


在這裏插入圖片描述


在這裏插入圖片描述



(1) PATH環境變量
PATH環境變量用於系統查找命令的路徑
通過命令 echo $PATH 可以查看PATH環境變量

在這裏插入圖片描述


可以通過命令:PATH=”$PATH”:/root/sh 添加路徑。
這種方法知識臨時生效,系統重啓將失效,想要永久生效,必須寫入到環境變量的生效文件中。



(2) PS1環境變量
PS1環境變量用於命名提示符設置,其各個符號的作用如下所示:

在這裏插入圖片描述


在這裏插入圖片描述




5 語系變量

查詢當前語系變量的命令爲: locale

在這裏插入圖片描述


如上圖所示,其中
LANG 表示系統主語系的變量;
LC_ALL 表示整體語系的變量;
通過命令 echo $LANG 可以查看系統當前語系


在這裏插入圖片描述


通過命令 locale -a|more 可以查看Linux支持的所有語系,如下圖所示:


在這裏插入圖片描述




6 位置參數變量

在這裏插入圖片描述


(1) $n

例如,求兩個變量的和

在這裏插入圖片描述


代碼

#!/bin/bash

num1=$1
num2=$2
sum=$(($num1 + $num2))
echo $sum

在這裏插入圖片描述



(2) $*, $@$#


代碼

#!/bin/bash

echo "參數爲:$*"

echo "參數也爲:$@"

echo "參數個數爲:$#"

在這裏插入圖片描述



(3) $*$@ 的區別

在這裏插入圖片描述



代碼

#!/bin/bash

for i in "$*"
        do
                echo $i
        done

echo ------------------

for j in "$@"
        do
                echo $j
        done

在這裏插入圖片描述





7 預定義變量


在這裏插入圖片描述


(1) $?

在這裏插入圖片描述



(2) $$$!

在這裏插入圖片描述





8 接收鍵盤輸入——read命令

read命令用於接收鍵盤輸入的字符,其命令格式爲:

read 選項 變量名

其中參數選項及其作用分別爲:
1) -p 表示提示信息,在等待read輸入時,輸出提示信息;
2) -t 表示等待的秒數,read命令會一直等待用戶輸入,用戶可以設置等待的時間;
3) -n 表示接收指定的字符數,當接收到指定的字符數時,命令直接執行;
4) -s 表示隱藏輸入的數據,適用於密碼等信息的輸入;



例1 使用參數-p


代碼1

#!/bin/bash

read -p "請輸入你的名字:" name
echo 你的名字爲:"$name"

在這裏插入圖片描述



例2 使用參數-s

代碼2

#!/bin/bash

read -p "請輸入你的名字:" name
echo 你的名字爲:"$name"
read -p "請輸入登錄密碼:" -s passwd 
echo -e "\n"
echo $passwd

在這裏插入圖片描述



例3 使用參數-n

代碼3

#!/bin/bash

read -p "請輸入你的名字:" name
echo 你的名字爲:"$name"

read -p "請輸入登錄密碼:" -s passwd
echo -e "\n"
echo 輸入的密碼爲:"$passwd"

read -p "請輸入一個字符:" -n 1 x
echo -e "\n"
echo 輸入的字符爲:"$x"

在這裏插入圖片描述






參考資料

[1] shell編程之變量



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