shell基礎學習總結(二)

yuntui發表於2016-11-03
-->關於shell程式設計之檔案比較
可以使用如下的選項來做檔案的比較。有了這些選項,檔案的比較來說都是遊刃有餘。
-d file        file是否存在並是一個目錄
-e file        file是否存在
-f file        file是否存在並是一個檔案
-r file        file是否存在並可讀
-s file        file是否存在並非空
-w file        file是否存在並可寫
-x file        file是否存在並可執行
-O file        file是否存在並屬當前使用者所有
-G file        file是否存在並且預設組與當前使用者相同
File1 –nt file2     file1是否比file2新
File1 –ot file2     file1是否比file2舊

-->雙圓括號
關於雙圓括號在shell中的使用,可是相當的廣泛。以下的操作都會涉及到雙圓括號。
Val ++,++val
Val –,--val
!  邏輯求反
~ 位求反
** 冪運算
<<  左位移
>>  右位移
&  位布林和
|   位布林減
&&  邏輯和
||  邏輯減

舉一個簡單的例子來說明。
val1=10;

if (( val1 ** 2 > 90 ))
then
(( val2 = $val1**3 ))
echo $val2
fi

-->shell程式設計中的case
case語句的使用和在其它語言中的程式設計表達的是一個意思。
都是透過case 語句來把判斷條件來逐步細分,得到與之最匹配的選項。case的使用也比較廣泛,比如某一個命令可能含有很多的功能,就可以使用case來集多個功能於一身。
Case variable in 
Parttern1|parttern2 ) commands;;
Pattern3) commands;;
*)default commands;;
esac

舉一個使用case的例子。如果透過$USER得到的使用者是ora10g或者oracle就輸出this is the right user,如果是Testing,就輸出this is a test user,如果是其它的使用者則輸出一段警告。
case $USER in
ora10g | oracle )
    echo 'this is the right user'
    echo 'glad to see you ';;
Testing)
    echo 'this is a test user';;
*)
    echo 'sorry, you are not the expected user';;
esac


->shell程式設計之函式
對於複雜的shell程式設計而言,肯定涉及的上下文環境會比較複雜,可能一個單獨的shell檔案就顯得有些單薄了。如果有些功能在其它的指令碼中也會涉及到,每次重複寫就太無聊了。可以使用函式的功能,直接在使用的使用引用即可。
函式的語法如下。呼叫的時候也很方便。
function fname()
{
Statements;
}


fname()
{
Statements
}


fname ;
fname arg1 arg2




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30633755/viewspace-2127775/,如需轉載,請註明出處,否則將追究法律責任。

相關文章