shell 變量的定義,賦值,運算


一、變量類型

1.1、自定義變量

1.定義變量

不能使用純數字命名,不能使用橫杠命名	
變量名=變量值
[root@localhost ~]# name=erha   		

2.引用變量

$變量名 或者 ${變量量名}

3.查看變量值

echo	$變量量名
[root@localhost ~]# echo $name
erha	

4.取消變量

[root@localhost ~]# unset  name
[root@localhost ~]# echo $name

5.作⽤用范圍
僅在當前shell中有效

1.2、系統環境變量

1.定義環境變量

export	變量名
將⾃定義變量轉換成環境變量,先定義,后准換
[root@localhost ~]# name=huahua
[root@localhost ~]# export name

2.引用環境變量

$變量名	或 ${變量名}	

3.查看環境變量

echo	$變量名
[root@localhost ~]# echo $name
huahua

4.取消環境變量

unset	變量量名	
[root@localhost ~]# unset name
[root@localhost ~]# env |grep name
#取消該變量后,查詢系統環境變量中,就沒name這個變量了。

5.變量作⽤用范圍
在當前shell和⼦shell有效

1.3、系統環境變量
$1	$2	$3	$4	$5	$6 ...
#$1代表向腳本內傳遞的第一個位置參數,$2代表第二個,依次類推。	
1.4、預定義變量
$0	腳本⽂文件名 	
$* $@	所有的參數 	
$#	參數的個數	
$$	當前進程的 PID 	
$!	上一個后台進程的 PID 	
$?	上一個命令的返回值 0 表示成功
小腳本
[root@localhost ~]# cat var.sh 
#!/bin/bash
echo "第一個參數:$1"
echo "第二個參數:$2"
echo "第三個參數:$3"
echo "第四個參數:$4"
echo "所有參數為:$*"
echo "參數個數為:$#"
echo "當前進程ID為:$$"
echo "上一個進程ID為:$!"
echo "當前腳本名稱為:$0"
echo "當前腳本執行結果:$?"
執行如下
[root@localhost ~]# sh var.sh 1 2 3 4 5 
第一個參數:1
第二個參數:2
第三個參數:3
第四個參數:4
所有參數為:1 2 3 4 5
參數個數為:5
當前進程ID為:8875
上一個進程ID為:
當前腳本名稱為:var.sh
當前腳本執行結果:0

二、變量賦值

2.1、直接賦值
[root@localhost ~]# name=huahua
#注意等號兩邊不能有空格
2.2、從鍵盤讀入
[root@localhost ~]# read 參數 變量名
可選參數
-p :提示信息
-t :等待時間
-n :讀入字符數
小腳本
解壓文件到指定位置
[root@localhost ~]# cat tr.sh 
#!/bin/bash
read -p "請輸入要解壓的文件,及解壓目錄:" src dst
if [ -e $src ];then
	tar -zxvf $src -C $dst
else
	echo "沒有該文件..."
fi
2.3、強引用與弱引用
"" :弱引用,特殊字符依舊有特定含義。
[root@localhost ~]# age=18
[root@localhost ~]# echo "$age"
18

'' :強引用,所有字符被當作普通字符處理。
[root@localhost ~]# echo '$name'
$name

2.4、命令執行結果引用
`` :反引號,不過容易與引號混淆。
[root@localhost ~]# t1=`date +%F`
[root@localhost ~]# echo $t1
2020-01-20

$():$加小括號,不容易混淆,一般使用這種方式較多
[root@localhost ~]# t2=$(date +%F)
[root@localhost ~]# echo $t2
2020-01-20

三、數學運算

3.1、整數運算(expr)
加 減 乘 除 取余
+  -  \* /   % 

[root@localhost ~]# expr 1 + 1
2
[root@localhost ~]# expr 1 - 1
0
[root@localhost ~]# expr 1 \* 1
1
[root@localhost ~]# expr 1 / 1
1
[root@localhost ~]# expr 1 % 1
0
3.2、整數運算($(()))
加 減 乘 除 取余 冪運算
+  -  * /   %   **

[root@localhost ~]# echo $((1 + 2))
3
[root@localhost ~]# echo $((1 - 2))
-1
[root@localhost ~]# echo $((1 * 2))
2
[root@localhost ~]# echo $((1 / 2))
0
[root@localhost ~]# echo $((1 % 2))
1
[root@localhost ~]# echo $((1 ** 2))
1
3.3、整數運算($[])
與 $(())類似
[root@localhost ~]# echo $[1+2]
3
[root@localhost ~]# echo $[1-2]
-1
[root@localhost ~]# echo $[1*2]
2
[root@localhost ~]# echo $[1/2]
0
[root@localhost ~]# echo $[1**2]
1
3.4、整數運算(let)
加 減 乘 除 取余 冪運算
+  -  * /   %   **

[root@localhost ~]# let nu=2**4
[root@localhost ~]# echo $nu
16
3.5、小數運算
可以使用bc命令
[root@localhost ~]# echo "1.1"+"2.3"|bc
3.4


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM