在Bash中默認為字符串類型,其他類型我們可以通過declare來定義。
## 1.字符串型
Bash中的默認數據類型。
```
#!/bin/bash
string="hi my name is djangowang"
echo $string
```
## 2.數值型
在Bash中字符串類型只能用于字符串比較不能進行數學運算。我們通過declare -i來定義數值型。
```
declare -i number # 定義一個數值型
```
我們來對比一下字符串型與數字型。
```
#!/bin/bash
# 字符串
n=6/3
echo "n = $n" # n = 6/3
# 數值型
declare -i n
n=6/3
echo "n = $n" # n = 2
```
## 3.數組
數組中可以存放多個值。Bash只支持一維數組,不支持多維數組,初始化時不需要定義數組大小,與大部分編程語言類似數組元素的下標由0開始。
```
declare -a array
```
數組案例。
```
#!/bin/bash
declare -a array
array=(A B "C" D)
echo "第一個元素為: ${array[0]}"
echo "第二個元素為: ${array[1]}"
echo "第三個元素為: ${array[2]}"
echo "第四個元素為: ${array[3]}"
```
## 4.顯示函數
declare -f 顯示函數。
```
#!/bin/bash
function a(){
echo "test1"
}
function b(){
echo "test1"
}
declare -f # 顯示以上函數
declare -f a # 限制指定函數
```
## 5.設置環境變量
declare -x指定的變量會成為環境變量,可供Shell以外的程序來使用。
```
#!/bin/bash
declare -x STRING="hello world" # 定義一個string的環境變量,建議環境變量為大寫
export -p # 列出所有的Shell賦予程序的環境變量
```
## 6.只讀變量
declare -r var1與readonly var1作用相同。當設置只讀變量后,變量內容不可以修改。
```
declare -r var1 # 設置一個只讀變量
#或
readonly var1
readonly -p # 用于顯示只讀變量的清單
```
案例。
```
#!/bin/bash
url="http://blog.puppeter.com/"
declare -r url # 或readonly url變量
url="http://blog.puppeter.com/" # 當修改變量時會報錯誤“/bin/sh: NAME: This variable is read only”
```
## 6.unset變量
unset用于刪除變量。他有兩個參數-f(僅刪除函數)-v\(僅刪除變量\)默認值。
```
#!/bin/bash
foo="hello world"
echo $foo # 輸出hello world
unset foo # 刪除foo變量
echo $foo # 為空
```
- Introduction
- 1.Shell編程基礎
- 什么是Shell
- 編寫第一個Bash程序
- 2.變量
- 什么是變量
- 變量四種賦值方式
- 指定變量類型
- 變量的類型
- 特殊變量
- 3.Bash符號相關
- Bash符號相關
- 特殊符號
- 數學運算符號
- 4.內建命令與外部命令
- 內建命令與外部命令
- 5.read命令
- read命令
- 6.條件語句
- if..then..fi
- if..then..else..fi
- if..then..elif..fi
- 空命令
- 文件測試符
- 字符串判斷、與、或和非
- []與[[]]符號
- 7.Bash循環 && 分支語句
- while循環語句
- for循環
- for..in循環
- until循環
- select循環
- case分支語句
- 8.正則表達式
- 正則表達式
- 9.子Shell和受限Shell
- 子Shell
- 受限Shell
- 10.函數與函數的加載
- 函數語法與案例
- 遞歸函數
- 函數的加載
- 11.Bash腳本風格
- Bash腳本風格
- 12.Bash腳本調試
- Bash腳本調試
- 13.sed && awk
- sed
- 14.awk
- awk
- 15 Bash雜項 && 案例
- while循環的陷阱
- Bash的生命周期
- IO重定向
- /bin/bash和/bin/sh區別
- 命令雜項
- Shell加密
- 16.10.2.案例
- Bash版回收站
- 17.Bash中文速查表
- 中文速查表