種類
- 用戶自定義變量
- 環境變量 保存和系統操作環境相關的的數據 //建議大寫,便于區分
- 位置變量 腳本當中傳遞參數或數據,變量名不能自定義,變量作用固定
- 預定義變量 bash中預定義好的變量,變量名不能自定義,變量作用也是固定
用戶自定義變量 -本地變量,用戶任意設置,只在當前的shell生效
- 調用 echo $name
- 查看 set 查看所有
- 刪除 unset $name
環境變量 - 會在當前shell 和子shell 生效,寫入配置文件,shell打開新終端,會在所有shell生效
- 聲明 export 變量名 = 變量值
- 聲明已有變量 export 變量名
- 查看 env
- 刪除 unset 變量名
位置變量
- $n n為數字,$0代表命令本身,$1-$9代表第一到第九個參數,十個以上的參數用大括號包含如,${10}。
- $* 代表命令中的所有參數,$*把所有的參數看成一個整體
- $@ 代表命令中的所有參數,不過是把參數看成一個個個體對待
- $# 代表命令行中的所有參數的個數
腳本一
#!/bin/bash
echo $0
echo $1
echo $2
輸出結果如下 -- 運行腳本,chmod 755 賦予運行權限
腳本二
#!/bin/bash
sum=$(($1+$2))
echo "sum is $sum"
輸出結果
腳本三
#!/bin/bash
echo $# #輸出參數個數
for i in "$*" # 輸出整體
do
echo "the prarm is $i"
done
for y in "$@" #一個個輸出
do
echo "the param is $y"
done
輸出結果
預定義變量
- $? 最后一次執行的命令的返回狀態,如果這個變量的值為0,證明上一個命令正確執行;如果這個變量的值為非0,則上個命令未正確執行
- $$ 當前進程的進程號
- $! 后臺運行的最后一個進程的進程號pid
接受鍵盤輸入
- read [選項] [變量名]
- -p "提示信息 " 在等待read輸入時,顯示提示信息
- -t 秒數 read 命令會一直等待用戶輸入,使用此選項可以指定等待時間
- -n 字符數 read只接受指定字符數就會執行
- -s 隱藏輸入的數據,用于機密信息的輸入
#!/bin/bash
read -t 30 -p "input something:" name
echo $name
運算符
declare 聲明變量的類型
- declare +/- [選項] 變量名
- 給變量設定類型屬性
- 給變量取消類型屬性
- -i 將變量聲明為整形
- -x 將變量聲明為環境變量
- -p 顯示指定變量的被聲明類型