shell入門之變量


1,變量建立

變量名稱不能以數字開頭

var=5

var=hello

可以直接賦值數字和字符串,本質上其實都是字符串,declare -i var變爲整數

添加一個變量set 也可省略,shell變量,只是當前shell和子shell可繼承

添加一個環境變量export var,declare -x var,刪除一個環境變量unset var,刪除後是空,顯示所有環境變量env,export -p

例如

PATH是解讀命令時候去哪裏尋找

SHELL是當前解釋器的目錄,/bin/bash說明是bash shell

USER,UID,HOME,IFS,PWD,OLDPWD,PS1,PS2,PPID

2,變量的取值

加符號$var就可以取到變量的值,類似c語言,*p取p指向地址處的值,此處省略了大括號${var},大括號可以避免上下文的連接歧義

awk中print內建變量,不需要加$


3,變量的運算

默認都是字符串,除非let “var+=2” 

 var1=((var+5)) ;var2=[var+5];這樣是不會成功的,符號只是一種運算,變量賦值要的是結果,要加$

 var1=$((var+5)) ;var2=$[var+5]


以echo爲例,echo hello ,shell程序主要是命令+選項+參數

命令和選項是通過man可以查出,參數分爲單獨引用,單引號,雙引號

區別如下:

echo \m ;echo \\m;echo \\\m;

echo '\m';echo '\\m';echo '\\\m'

echo "\m";echo "\\m";echo "\\\m"


雙引號:除 $ ` \之外,直接引用,保留空格,保留換行

單引號:所見即所得,所有字符,但是不能屏蔽自己,單引號

反引號:系統命令執行的結果$()

反斜線:屏蔽下一個特殊字符爲普通字符


參數傳遞過程其實分爲兩部分

1參數本身處理:雙引號,單引號,括號,反斜線,單獨引用

2參數解讀處理:例如grep接到\b,加正則表達式選項爲整數,不加正則表達式\b本身

echo -e;grep -P把\t識別爲tab


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章