文章目錄
注:轉載請標明原文出處鏈接:https://xiongyiming.blog.csdn.net/article/details/106248606
1 變量概述
Shell與其他語言相比:
- php和jave主要實現功能;
- 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 環境變量
環境變量和用戶自定義變量的區別:
- 用戶自定義變量只在當前的Shell中生效;
- 環境變量在當前Shell和這個Shell的所有子Shell中生效。
注意: 變量可以自定義,但是對系統生效的環境變量名和變量的作用是固定的。
定義環境變量的命令格式:export 變量名=變量值
或者:
變量名=變量值
export 變量名
然後進入到子bash中,然後通過命令 pstree
查看
然後使用命名 set
來查看所有變量名,只能看到環境變量y和z,變量x不在當前bash中。
set
命令查看所有變量;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編程之變量