shell基礎學習總結(二)
-->關於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
可以使用如下的選項來做檔案的比較。有了這些選項,檔案的比較來說都是遊刃有餘。
-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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell基礎學習總結(一)
- 學習canvas基礎的總結Canvas
- shell學習總結-4
- shell學習總結-1
- shell學習總結-2
- shell學習總結-3
- Kotlin 基礎學習總結(一)Kotlin
- JavaScript學習總結(一)基礎部分JavaScript
- Linux學習(Shell基礎)Linux
- Shell 學習筆記 基礎筆記
- JavaScript基礎總結(二)JavaScript
- JAVA基礎學習-數字與字串學習總結Java字串
- Linux學習-shell基礎02Linux
- 《計算機基礎與程式設計》第二週學習總結計算機程式設計
- 前端學習之PHP基礎函式總結前端PHP函式
- Java基礎知識學習筆記總結Java筆記
- 機器學習演算法基礎概念學習總結機器學習演算法
- 考研學習總結(二)
- OC學習總結(二)
- shell基礎篇(二)-shell變數變數
- Shell程式設計基礎學習之四:語法結構程式設計
- Spark學習(二)——RDD基礎Spark
- Java基礎 快速學習(二)Java
- Java 基礎學習總結(一)抽象類和介面Java抽象
- 學習mysql之後的一點總結(基礎)MySql
- Flutter學習總結系列----Flutter基礎全面詳解Flutter
- Oracle學習總結--基礎部分(儲存與索引)Oracle索引
- 第二週學習總結
- Shell程式設計基礎學習之二:變數的基本認知程式設計變數
- 基礎二分查詢總結
- 前面基礎問題小總結(二)
- Android面試基礎題總結二Android面試
- JAVA基礎知識精華總結(二)Java
- shell程式設計基礎二程式設計
- Elasticsearch學習系列二(基礎操作)Elasticsearch
- 『忘了再學』Shell基礎 — 14、環境變數(二)變數
- 零基礎學習Java,全方位知識點總結!Java
- 2020-11-17 學習總結:bootstrap基礎boot