shell腳本基礎(一)

一、shell腳本介紹

Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。

  • shell是一種腳本語言;
  • 可以使用邏輯判斷、循環等語法;
  • 可自定義函數;
  • shell是系統命令的集合;
  • shell腳本可以實現自動化運維,能大大增加我們的運維效率;

二、shell腳本結構和執行

1、結構

  • 開頭需要“#!/bin/bash“;
  • 腳本內容中以#開頭的行作爲解釋說明;
  • 編寫腳本時備註:作者、時間、功能等信息,方便之後查看;
  • 腳本的名字用“.sh”結尾,用於區分這是一個shell腳本;

2、執行方式

1、作爲可執行程序:給腳本添加執行權限chmod a+x test.sh,然後直接執行該腳本./test.sh;
2,作爲解釋器參數:使用sh執行# sh test.sh;

3、參數

-x:sh -x test.sh 查看腳本執行過程
-n:sh -n test.sh 檢測語法錯誤

三、date命令用法

date命令用於顯示或設置系統時間與日期。
命令選項:

-d :顯示字符串指定的日期與時間(字符串前後必須加上雙引號)
-s:根據字符串來設置時間與日期(字符串前後必須加雙引號)

命令實例:

[root@zlinux-01 ~]# date               //顯示當前日期時間
2018年 04月 17日 星期二 19:54:50 CST
[root@zlinux-01 ~]# cal               //當前日曆
      四月 2018     
日 一 二 三 四 五 六
 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

[root@zlinux-01 ~]# date +%Y          //顯示年份
2018
[root@zlinux-01 ~]# date +%y           //年份簡寫
18
[root@zlinux-01 ~]# date "+%Y-%m-%d %H:%M:%S %w"               //年月日,時分秒,星期
2018-04-17 19:58:30 2
[root@zlinux-01 ~]# date +%F        //完整日期的另一種顯示
2018-04-17
[root@zlinux-01 ~]# date +%W          //一年中的第幾周
16 
[root@zlinux-01 ~]# date +%T                //當前時間
20:01:19
[root@zlinux-01 ~]# date "+%F %T"        //日期時間
2018-04-17 20:01:45
[root@zlinux-01 ~]# date +%s              //時間戳(顯示從1970年1月1日00:00:00到目前經歷的秒數)
1523966522
[root@zlinux-01 ~]# date -d @1523966522              //時間戳轉化成具體日期
2018年 04月 17日 星期二 20:02:02 CST
[root@zlinux-01 ~]# date +%s -d "2018-04-17 20:04:59"         //日期轉化爲時間戳
1523966699
[root@zlinux-01 ~]# date -d "-1 year" +%Y    //前一年
2017
[root@zlinux-01 ~]# date -d "-1 month" +%m   //前一月
03
[root@zlinux-01 ~]# date -d "-1 day" +%d      //前一天
16
[root@zlinux-01 ~]# date -d "2 year 2month 2 day" +%Y-%m-%d          //當前日期的下2年的下2月下2天
2020-06-19

四、shell中的變量

  • 當腳本中使用某個字符串,多次頻繁並且字符串長度很長時,就應該使用變量代替
  • 使用條件語句時,常使用變量 if [ $a -gt 1];then ...;fi
  • 引用某個命令的結果時,用變量替代 n=wc -l 1.txt
  • 寫和用戶交互的腳本時,變量也是必不可少的 read -p "lnput a number:" n; echo $n 如果沒有寫這個n, 可以直接使用$REPLY
  • 內置變量 $0,$1,$2... $0表示腳本本身,$1 第一個參數,$2第二個... $#: 表示參數個數
  • 數學運算a=1;b=2;c=$($a+$b)或者$[$a+$b]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章