Shell編程基礎

  • shall編程第一行
    第一行制定了執行該腳本所用的語言
#!/bin/bash
  • 定義變量
    • 等號兩邊不能有空格
    • 單引號表示字符串,雙引號表示特殊含義
    • 變量可以用雙引號引起來,主要是爲了區分變量的邊界
#!/bin/bash
name='xul_test'
echo $name
  • 基本的重定向

    • 輸出
      將標準輸出,輸出到當前文件夾下的test.t文件
ls /usr/local > ./test.t    //覆蓋寫
ls /usr/local >> ./test.t  //已追加的形式輸出
  • 輸入
    將標準輸入改爲從文件輸入
  • 管道
ls /usr/local | grep bin
// -i 忽略大小寫是
ls /usr/local | grep BIN
// -V 顯示不匹配的行
ls /usr/local | grep -v bin
//-n 列出目標所在的行號
ls /usr/local | grep -n bin
//-c 列出匹配所在的總行數
ls /usr/local | grep -c bin

shell中的特殊字符

  • shell 中的通配符:
    *: 代表 0 個或者多個任意字符
    ?: 代表一定有一個的任意字符
    []: 代表一定有一個在括號內的字符(非任意字符)。例如[abcd]代表一定有一個字符,可能是 abcd 這四個選項的任意一個。
    [-]:若郵件韓在括號內時,代表在編碼順序內的所有自負。例如:[0-9]代表 0 到 9 之間的所有數字,因爲數字的語系編碼是連續的。
    [^]: 若括號內的第一個字符爲指數字符(^),那表示反向選擇,例如:[^abc]代表一定有一個字符,只要是非 abc 的其他字符就可以。

  • shell中的特殊字符:
    #:註釋字符
    **:將特殊字符或者通配符還原成一般字符
    |:管道符,分割兩個管線命令的界定
    ;:連續命令下達分隔符
    ~:用戶的家目錄
    $:放在變量前面,正確使用變量
    &:工作控制,將命令編程背景下工作
    !:非(!)的意思,邏輯運算符
    >,>>:輸出重定向,分別是覆蓋和追加
    <,<<:輸入重定向
    ‘’:單引號,不具有變量置換的功能
    “”:雙引號,具有變量置換的功能
    ():在中間的爲子 shell 的起始與結束
    {}:在中間爲命令塊的組合

  • shell 中正則表達式的控制字符
    ^:匹配行首位置
    $:匹配行尾位置
    .:匹配任意祖父
    :對之前的匹配整體或字符匹配任意次(包括 0 次)
    \?:對\?之前的匹配整體或字符匹配 0 次或 1 次
    {n}: 對 \ { 之前的匹配整體或字符匹配 n 次
    {m,}: 對 \ { 之前的匹配整體或字符匹配至少 m 次
    {m,n}: 對 \ { 之前的匹配整體或字符匹配 m 到 n 次
    [abcdef]: 對單字符而言匹配[]中的字符
    [a-z]: 對單字符而言,匹配任意一個小寫字母
    [^a-z]:不匹配括號中的內容

發佈了33 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章