1. 程式人生 > >shell 指令碼學習筆記-1 終端列印 變數 環境變數

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