shell 指令碼學習筆記-1 終端列印 變數 環境變數
1. echo 列印
echo Welcom to Bash
echo "Welcom to Bash"
echo 'Welcom to Bash'
結果都一樣,終端輸出 Welcom to Bash
--第一種方式不能輸出 分號 ( ; )因為分號是命令定界符。
--雙引號內部可以使用 變數替換,也支援 轉義字元,比如 ! 必須寫成 \! ( 加\ ) 這種字元。
--變數替換在單引號中無效
預設情況,echo 會將換行符 追加到 輸出文字的末尾,可以使用 -n 來忽略結尾的換行符。
echo -n Hello
2.變數
變數不需要宣告 , 只需要直接賦值就可以了。
var=value
var是變數名,value是變數值 ,如果value中不包含任何空白字元(例如空格),那麼就不需要使用引號進行引用 ,否則必須使用單引號或者雙引號 。
注意 var = value 不同於var=value,前者是相等操作,後者才是賦值操作,賦值等號兩邊是不能留空格的。
在變數名前新增$字首就可以打印出變數內容;
var="value"
echo $var
或者
echo ${var}
輸出如下
value
#!/bin/bash
fruit=apple
count=5
echo "We have $count ${fruit}s"
輸出如下
We have 5 apples
3,環境變數
環境變數是未在當前程序中定義,而從父程序中整合而來的變數。
export 命令用來設定環境變數 ,至此以後,從當前shell中執行的任何應用程式都會整合該變數。
在預設情況下,有很多標準環境變數可供shell使用。
PATH 就是其中之一
echo $PATH
/home/slynux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
可以檢視PATH 內容
再給出要執行的命令後,shell會自動在PATH環境變數所包含的路徑(各目錄間以冒號分割)中查詢對應的可執行檔案
PATH 通常定義在 /etc/enviroment 或 /etc/profile 或 ~/.bashrc 中
如果想再 PATH中新增一個路徑可以
export PATH="$PATH:/home/user/bin"
有一些眾所周知的環境變數 HOME , PWD , USER , UID ,SHELL 等。
echo $var
echo "$var"
會打印出var 的內容,如果變數未定義,則什麼都不列印。
echo '$var' 不會擴充套件變數,列印結果就是 $var 。
補充:
(1)
可以獲得變數中變數值的長度
lenth=${#var}
例如:
var=123456789
echo ${#var}
結果為 9
(2)
判斷當前是否為超級使用者
UID是一個重要的環境變數,可用於檢查當前執行指令碼的使用者是否為超級使用者,例如
if [ $UID -ne 0 ];then
echo not root user
else
echo root user
fi