天天看點

Shell基礎文法(上)

開頭需要加#! /bin/bash

以#開頭的行作為解釋說明

腳本的名字以.sh結尾,用于區分這是一個shell腳本

執行方法有兩種

chmod +x 1.sh; ./1.sh

bash 1.sh

檢視腳本執行過程 

bash -x 1.sh

檢視腳本是否文法錯誤 

bash -n 1.sh

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

<code># date      //單純的顯示目前日期</code>

<code>2017年 09月 12日 星期二 21:26:09 CST</code>

<code>[root@Plinux ~]</code><code># date +%Y   // 單純的四位數  “年”</code>

<code>2017</code>

<code>[root@Plinux ~]</code><code># date +%y   // 二位數    “年”</code>

<code>17</code>

<code>[root@Plinux ~]</code><code># date +%M   // Minute “分鐘”</code>

<code>32</code>

<code>[root@Plinux ~]</code><code># date +%m   // Month    “月份”</code>

<code>09</code>

<code>[root@Plinux ~]</code><code># date +%S   // Second   “秒”</code>

<code>21</code>

<code>[root@Plinux ~]</code><code># date +%H   // Hour     “小時”</code>

<code>[root@Plinux ~]</code><code># date +%d   // date     “日期”</code>

<code>12</code>

<code>[root@Plinux ~]</code><code># date +%D   //  安裝如何英文格式輸出    “年月日”</code>

<code>09</code><code>/12/17</code>

<code>[root@Plinux ~]</code><code># date +%Y%m%d       // 四位數   “年月日”</code>

<code>20170912</code>

<code>[root@Plinux ~]</code><code># date +%y%m%d       // 二位數   “年月日”</code>

<code>170912</code>

<code>[root@Plinux ~]</code><code># date +%F           // 特殊格式 “年月日”</code>

<code>2017-09-12</code>

<code>[root@Plinux ~]</code><code># date +%T           // 特殊格式 “時分秒”</code>

<code>21:40:22</code>

<code>[root@Plinux ~]</code><code># date +%H%M%S       // 組合式   “時分秒”</code>

<code>214500</code>

<code>[root@Plinux ~]</code><code># date +%H:%M:%S     // 自定義   “時分秒”</code>

<code>21:45:07</code>

<code>[root@Plinux ~]</code><code># date +%w           // week     “周幾”</code>

<code>2</code>

<code>[root@Plinux ~]</code><code># date +%W           // 第幾周   </code>

<code>37</code>

<code>[root@Plinux ~]</code><code># date -d "-1 day" +%F       // 昨天</code>

<code>2017-09-11</code>

<code>[root@Plinux ~]</code><code># date -d "-1 month" +%F     // 上個月</code>

<code>2017-08-12</code>

<code>[root@Plinux ~]</code><code># date -d "-1 years" +%F     // 上年</code>

<code>2016-09-12</code>

<code>[root@Plinux ~]</code><code># date -d "-1 hour" +%T      // 過去的一小時</code>

<code>21:00:33</code>

<code>[root@Plinux ~]</code><code># date +%s           // 從1970年到現在已經過去多少秒了   “時間戳”    </code>

<code>1505225506</code>

<code>換算某個時間點的時間戳:(2018年8月8号8時8分8秒離1970年過去了多少秒)</code>

<code>[root@Plinux ~]</code><code># date +%s -d "2018-08-08 08:08:08"</code>

<code>1533686888</code>

<code>根據時間戳 得到一個具體的時間</code>

<code>[root@Plinux ~]</code><code># date -d @1533686888</code>

<code>2018年 08月 08日 星期三 08:08:08 CST</code>

使用條件語句時,常使用變量 if [ $a -gt 1 ]; then … ; fi

引用某個指令的結果時,用變量替代 n=wc -l 1.txt

寫和使用者互動的腳本時,變量也是必不可少的 read -p “Input a number: ” n; echo $n 如果沒寫這個n,可以直接使用$REPLY

内置變量 $0, $1, $2… $0表示腳本本身,$1 第一個參數,$2 第二個 …. $#表示參數個數

數學運算a=1;b=2; c=$(($a+$b))或者$[$a+$b]

本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/2063964,如需轉載請自行聯系原作者