歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Shell學習筆記 - Shell變量

Shell學習筆記 - Shell變量

日期:2017/3/1 12:20:50   编辑:SHELL編程
一、變量的命名 變量名必須以字母或下劃線開頭,由字母、數字、或下劃線組成,變量名的長度不能超過255個字符。 二、變量的分類 1. 用戶自定義變量 2. 環境變量 3. 位置參數變量 4. 預定義變量 三、用戶自定義變量 用戶自定義變量是“局部變量”,只能在當前的Shell中生效 1. 定義變量 變量名=變量值 示例: 注意:等號前後不能有空格,否則會出現以下錯誤提示: 2. 變量調用 $變量名 或 ${變量名} 示例: 3. 變量疊加 示例: 4. 刪除變量 unset 變量名 示例: 5. 查看變量 1) env:查看所有的環境變量 2) set:查看所有的變量(包括用戶自定義變量) 四、環境變量 環境變量是“全局變量”,在當前Shell和這個Shell的所有子Shell中生效 1. 設置環境變量 export 變量名=變量值 或 變量名=變量值 export 變量名 示例: 注意:設置環境變量時,建議使用大寫,避免與用戶自定義變量或系統命令(都是小寫的)沖突。 2. 刪除環境變量,環境變量調用,查看環境變量 用戶自定義變量的使用方式相同 3. 設置PS1環境變量 PS1環境變量會影響用戶提示符信息,示例如下: 五、位置變量 1. $n n為數字,$0代表命令本身,$1-$9代表第一到第九個參數,十以上的參數需要用大括號包含,如${10}。 示例: #!/bin/bash a=$1 b=$2 sum=$(($a +$b)) echo $sum 2. $* 這個變量代表命令行中所有的參數,$*把所有的參數看成一個整體 #!/bin/bash for i in "$*" do echo $i done #運行:test.sh 1 2 3 #輸出:1 2 3 #解釋:$*中的所有參數被看成是一個整體,所以這個for循環只會循環一次 3. $@ 這個變量也代表命令行中所有的參數,不過$@把每個參數區分對待 #!/bin/bash for i in "$@" do echo $i done #運行:test.sh 1 2 3 #輸出: 1 2 3 #解釋:$@中的每個參數被看成獨立的,所以這個for循環會循環多次 4. $# 這個變量代表命令行中的所有參數的個數 #!/bin/bash echo $# #運行:test.sh 1 2 3 #輸出:3 六、預定義變量 1. $? 最後一次執行的命令的返回狀態。如果這個值為0,則說明上一個命令執行正確;如果這個值不為0,則代表上一個命令執行的錯誤碼。 示例: 2. $$ 當前進程的進程號(PID) 示例: 3. $! 後台運行的最後一個進程的進程號(PID) #!/bin/bash find /root -name "test.sh" & echo $! 七、read命令 接受鍵盤輸入 1. 參數說明 -p "提示信息": 在等待read輸入時,輸出的提示信息 -t 秒數:read命令會一直等待用戶輸入,使用此參數可以指定等待時間 -n 字符數:read命令只接受指定的字符數,就會繼續執行 -s : 隱藏輸入的數據,適用於機密信息的輸入 2. 示例 #!/bin/bash read -p "please input username:" username read -p "please input password:" -s password echo -e "\n" read -p "please input sex[F/M]:" -n 1 sex echo -e "\n" echo "Welcome $username[$sex]"
Copyright © Linux教程網 All Rights Reserved