shell學習筆記

 

\ + ENTER   換行正則表達式

 

變量

shell變量無需聲明便可用,默認空值shell

於shell,變量常量無區別,用大小寫區別express

全部變量視爲字符串bash

變量賦值函數

 

 

Here文檔

語法:測試

cmd << tokenspa

text(單雙引號視爲普通字符)token

token文檔

 

cmd <<-  _EOF_字符串

text(單雙引號視爲普通字符,忽略Tab字符,可用來縮進)

_EOF_

 

函數

function name {

cmds

return

}

 

 

name() {

cmds

return

}

 

局部變量定義

local variable

 

if結構

#!/bin/bash

ANSWER=maybe

if [ -z 「$ANSER」 ]; then    #須有「」防止參數爲空致使錯誤($被解讀爲非空)

      echo 「no answer」 >&2

      exit 1

fi

if [ 「$ANSER」 = 「yes」 ];then

      echo 「answer is yes」

elif [ 「$ANSER」 = 「no」 ]

      echo 「 answer is no」   

else

      echo 「answer is maybe」

fi

exit

 

退出狀態

echo $?         顯示上一命令退出狀態,0成功,非0失敗

#true/false           系統內置命令,以0/1退出狀態終止執行

 

test命令

test expression       更普遍

[ expression ]         測試命令,表達式爲true,退出狀態0。false非0;特殊符號< > ( )須引號或 \轉義

[ [ expression ] ]  支持REG,bash獨有

[ [ str=~regex ] ]  string與正則表達式regex匹配爲true

[ [ str == foo.* ]] 支持模式匹配*,相似路徑名擴展

(())  整數專用,無須擴展,名字識別變量--(( INT == 0 ))

文件測試

[ -e file ]              file 存在爲true

[ -f file ]                   file存在且爲普通文件

[ f1 -nt f2 ]          f1新於fe爲true

字符串測試

[ string ] 非空爲true

[ -n str ] str長度>0爲true

[ -z str ]  長度=0爲true

[ str1 '>'  str2 ]

整數測試

[ int1 -lt int2 ]             <

[ int1 -le int2 ]            <=

[ int1 -ne int2 ]    not =

整數regex=^-?[0-9]+$

 

控制運算符

# mkdir tem && cd tem

# [ -d dir ] | | mkdir dir

 

[ $(id –u) == 0 ]爲root

相關文章
相關標籤/搜索