shell變量定義【學習總結】

學習目錄
一、如何定義變量
二、取消變量
三、雙引號" "和單引號' '有什麼相同和不同之處
四、通配符
五、shell腳本編寫規範
六、執行腳本方式
七、腳本增加可執行權限

shell是什麼?

簡單來說就是將需要執行的命令保存到文本中,按照順序執行。它是解釋型的,意味着不需要編譯。

一、如何定義變量

1、基本方式
2、命令執行結果賦值給變量
3、交互式定義變量(read)
4、定義有類型的變量(declare)

變量名的定義規則:
變量名嚴格區分大小寫,不能有特殊字符,不能以數字開頭,等號兩邊不能有任何空格,變量名儘量做到見名知意

1、基本方式
直接賦值給一個變量,變量名=變量值

[root@bigdata04 ~]# A=hello
[root@bigdata04 ~]# echo $A---獲取變量
hello
[root@bigdata04 ~]# B="hello world"-----變量值如果有空格用引號引起來
[root@bigdata04 ~]# echo $B
hello world
[root@bigdata04 ~]# echo ${B}-----獲取變量,可以獲取變量的某一部分
hello world
[root@bigdata04 ~]# echo ${B:3:2}
lo
[root@bigdata04 ~]# echo ${B:0:2}
he

2、命令執行結果賦值給變量

[root@MissHou ~]# B=`date +%F`
[root@MissHou ~]# echo $B
2019-04-16

3、交互式定義變量(read)
目的:讓用戶自己給變量賦值,比較靈活
常見選項釋義:
-p 定義提示用戶的信息
-n 定義字符數(限制變量值的長度)
-s 不顯示(不顯示用戶輸入的內容)
-t 定義超時時間,默認單位爲秒(限制用戶輸入變量值的超時時間)

用法1:用戶自己定義變量值
[root@MissHou ~]# read name
harry
[root@MissHou ~]# echo $name
harry
[root@MissHou ~]# read -p "Input your name:" name
Input your name:tom
[root@MissHou ~]# echo $name
tom
用法2:變量值來自文件
[root@MissHou ~]# cat 1.txt 
10.1.1.1

[root@MissHou ~]# read ip < 1.txt 
[root@MissHou ~]# echo $ip
10.1.1.1

4、定義有類型的變量(declare)
目的: 給變量做一些限制,固定變量的類型,比如:整型、只讀
用法:declare 選項 變量名=變量值
常用選項:
-i 將變量看成整數 declare -i A=123
-r 定義只讀變量 declare -r B=hello

二、取消變量

unset 變量名

[root@bigdata04 ~]# unset B
[root@bigdata04 ~]# echo $B

三、雙引號" "和單引號' '有什麼相同和不同之處

相同點:引號中的內容可以作爲一個整體
不同點:雙引號可以引用變量,單引號不能引用變量

四、通配符

*:匹配0個或者任意多個字符
:任意單個字符
[a-z] :括號內的任意單個字符
:取反
{string,string,string} :匹配括號裏面用逗號隔開的所有的字符串
{1..100} :匹配一個序列

五、shell腳本編寫規範

案例:

#!/bin/env bash

# 以下內容是對腳本的基本信息的描述
# Name: first_shell.sh
# Desc: num1
# Path: /shell01/first_shell.sh
# Usage:/shell01/first_shell.sh
# Update:2019-05-05

echo "hello world"
echo "hello world"
echo "hello world"

1.腳本名稱 ***.sh

2.腳本內容
1)定義解析器
#!/bin/bash
#!/bin/env bash 優勢:會自動去找當前系統的解析器位置
2)註釋說明
#
3)程序本身
定義變量+基本命令+基本語法+思想

六、執行腳本方式

1、標準腳本執行方法:相對路徑或者絕對路徑
前提:標準執行方式腳本必須要有可執行權限

[root@MissHou shell01]# /shell01/first_shell.sh---絕對路徑
或者
[root@MissHou shell01]# ./first_shell.sh---相對路徑

2、非標準的執行方法(不建議)
場景:查看腳本執行過程;或者腳本無法賦予可執行權限
解析器 +腳本文件

[root@MissHou shell01]# bash first_shell.sh
[root@MissHou shell01]# sh first_shell.sh
[root@MissHou shell01]# bash -x first_shell.sh
+ echo 'hello world'
hello world
+ echo 'hello world'
hello world
+ echo 'hello world'
hello world
----------------
-x:一般用於排錯,查看腳本的執行過程
-n:用來查看腳本的語法是否有問題
------------
七、腳本增加可執行權限
[root@MissHou shell01]# chmod +x first_shell.sh
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章