shell基礎學習總結(二) (r3筆記第72天)
-->關於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 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