BASH變量
第一小節
變量設置規則
- 在bash中,變量的默認類型是字符串型。
- 變量用等號連接值,等號兩側不能有空格。
- 變量值中如果有空格,需要用單引號和雙引號包起來。
- 如果把命令的結果作爲變量值賦予變量,需要用反引號或$()包含命令。
變量分類
- 用戶自定義變量:只在當前的shell中生效。
- 環境變量:名字不能改,可以改值。也可以手工增加新的環境變量。在當前shell和子shell中生效。(除了把環境變量寫在配置文件中,就會在所有的shell中生效)
- 位置參數變量:不能新增新的變量,屬於預定義變量。
- 預定義變量,不能改變名字和值。
變量調用
echo $name
變量查看
set
變量刪除
unset name
第二小節 環境變量
設置環境變量
export 變量名=變量值#申明變量 如:
env #查詢變量
PATH:系統查找命令的路徑。
PATH變量增加:"$PATH":/root/sh
第三小節 位置參數變量
例子:
第四小節 預定義變量
- find /root -name hello.sh &(&代表將這條命令放入後臺執行)
1.接受鍵盤輸入
read [選項][變量名]
選項:
-p “提示消息”:在等待read輸入時,輸出提示消息
-t 秒數 :等待用戶輸入的時間範圍設定
-n 字符數:接收指定的字符數,就會執行
-s :隱藏輸入的數據,可用作密碼的設定
第五小節 變量運算符
1. declare 聲明變量類型
declare [+/-][選項]變量名 declare -i c=$a+$b
選項:
-:給變量設定類型屬性
+:取消變量的類型屬性
-i:將變量聲明爲整數型
-x:將變量聲明爲環境變量
-p:顯示指定變量的被聲明的類型
2. expr或let
如:dd=$(expr $aa + $bb)注意:+號左右兩側必須有空格。
3."$((式子))" or "$[式子]" 建議使用這種,比較簡單方便。
運算符的優先級
運算符的測試和替換(不用死記硬背,需要的時候查查就好,個人認爲)
第六小節 環境配置文件
1. 基礎
- source命令:source 配置文件 或 .配置文件
-
主要的環境變量配置文件:(一層一層調用)
/etc/profile :USER變量,LOGNAME變量,MAIL變量,PATH變量,HOSTNAME變量,umask,調用/etc/profile.d/.sh
/etc/profile.d/.sh
~/.bash_profile:調用~/.bashrc,在PATH變量後面加入了“:$HOME/bin”這個目錄
~/.bashrc:定義默認別名,alias,調用/etc/bashrc
/etc/bashrc:PS1變量,umask,PATH變量,調用/etc/profile.d/*.sh![](http://i2.51cto.com/images/blog/201809/25/e6c193b3052f7fc6281b37a25a33bbf9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) “~”家目錄,更改當前用戶家目錄,只對當前用戶生效。 /etc/profile:有登陸的過程; /etc/bashrc:無登陸的過程;後面的會覆蓋前面的。
2. 其他配置文件
- 註銷時生效的環境變量配置文件:~/.bash_logout
- 歷史命令配置:~/bash_history
- 本地終端歡迎信息:/etc/issue.net(轉義符不能使用)
*是否顯示此歡迎信息,由ssh的配置文件/etc/ssh/sshd_config決定,加入"Banner /etc/issue.net"行才能顯示(記得重啓SSH服務)
/etc/motd :本地和遠程登陸都可以顯示歡迎信息。