《Shell腳本學習指南》學習筆記

Shell腳本學習

《Shell腳本學習指南》一書

基本語法

  • 環境變量$PATH
  • IO重定向:
    • <改變標準輸入
      • 如:tr -d '\r' < dos-file.txt
    • >改變標準輸出
      • 如:tr -d '\r' < dos-file.txt > UNIX-file.txt(如果>的目的文件不存在,將自動創建,若存在,將覆蓋原文件)
    • >>附加到文件(文件末尾追加)
      • 若文件不存在,則自動創建,若存在,則在文件末尾追加
    • |建立管道
      • 前一個program的輸出作爲後一個program的輸入(program1 | program2),如:ls | grep a
  • 特殊文件:/dev/null/dev/tty

    • /dev/tty:輸入密碼時,默認不打印輸入的密碼到終端,例如:(-echo 用來關閉打印輸入,echo打開)

          printf "Enter new password: "
          stty -echo 
          read pass < /dev/tty
          printf "Enter again: "
          read pass2 < /dev/tty
          stty echo
          ...
      

常用命令:

  • who:查詢系統的登陸用戶
  • cat > 文件名 :將後面的輸入信息重定向到文件中,以 ^D 結束
  • tr:轉換字符
    • -d:刪除source-char-list所列舉的字符,如:tr -d '\r' < dos-file.txt | sort > UNIX-file.txt,將dos-file.txt中的回車符全部刪掉,再排好序重定向到UNIX-file.txt文件中
  • sh (執行一個腳本)
    • -x顯示腳本中的每個命令,以+開頭,可以在腳本中打開追蹤功能, set -x,用set +x關閉追蹤
  • grep
  • sed
  • cut
  • awk
  • sort
  • uniq :(去重)
  • head -n n 查看前n行
  • tail -n n 查看後n行

  • umask

命令使用注意事項

  • -開頭表示選項,以--開頭表示長選項
  • 多條命令寫在一行,以;分隔

腳本的語法說明:

  1. #! 腳本解釋器路徑開頭,如:#! /bin/sh
  2. 變量
    • 命名:字母或下劃線開頭,後面可以是字母數字,下劃線
    • 賦值:變量名=值(注意等號前後不能有任何空格,變量值之間有空格時,需要用引號括起來),單行多次賦值,之間用空格分隔
    • 使用變量:以$變量名
    • 輸出:
      • echo
        • echo 參數(參數以空格分隔)
      • printf
        • 不會自動換行,需要換行,需在末尾加上\n
        • 例句:printf "the first program always print %s,%s" hello world (\d表示十進制整數)
  3. 再shell腳本中訪問shell腳本的參數
    • 讀取第n個參數,通過$n讀取,若n的數值大於9,則需用大括號括起來,如${10},讀取第10個參數

未完–

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章