常用的幾種腳本文件


常用的幾種腳本文件有:except腳本 bash腳本 python腳本 (解釋性語言,無需編譯,即可運行)

#!/usr/bin/except

except腳本,Expect是一個免費的編程工具語言,用來實現自動和交互式任務進行通信,而無需人的干預。

#!  /bin/bash

通過/usr/bin/bash運行程序,其指定了程序的具體位置,在某些情況下更安全,因為它限制了代碼注入的可能。

#!  /usr/bin/env bash

通過/usr/bin/env運行程序,用戶不需要去尋找程序在系統中的位置(因為在不同的系統,命令或程序存放的位置可能不同),程序的位置存放在$PATH中;

python腳本文件

 

bash語法:

rsync: 用於從一個位置到另外一個位置同步文件和文件夾。備份的地址可以是本地也可以是遠程   rsync -av --exclude=[...]  [.....] [.....]

sed: 逐行讀取文件的內容,讀到就執行相應的操作(主要用於替換文件中的字符串)

echo: 輸出字符串

find: 查找文件                      find 目錄 -name "文件名"

grep: 以行為單位讀取文本並使用正則表達式進行匹配,匹配成功后打印出該行文本    grep [option] "string_to_find" filename

grep常見選項:

(1)-i:忽略搜索字符串的大小寫

(2)-v:取反,即輸出不匹配的那些文本行

(3)-n:輸出行號

(4)-l:輸出能夠匹配模式的文件名,相反的選項為-L

(5)-q:靜默輸出

(6)-c:計算匹配成功的行數

(7)-o:輸出匹配到的文本部分的個數

(8)-e:該選項加上正則表達式就是一個需要匹配的模式

(9)-r:grep的參數filename為目錄時可以加上本選項表示遞歸搜索

(10)--include:指定需要搜索的文件

(11)--exclude:排除需要搜索的文件

(12)--exclude-dir:排除需要搜索的目錄

 

shell中的特殊字符:

  • $  美元符號。用來表示變量的值。如變量NAME的值為Mike,則使用$NAME就可以得到“Mike”這個值。
  • #  井號。除了做為超級用戶的提示符之外,還可以在腳本中做為注釋的開頭字母,每一行語句中,從#號開始的部分就不執行了。
  •  “”  雙引號。shell不會將一對雙引號之間的文本中的大多數特殊字符進行解釋,如#不再是注釋的開頭,它只表示一個井號“#”。但$仍然保持特殊含義。(在雙引號中的$加變量名,即:$PARAM_NAME,依然會轉換成變量的值。),雙引號對於某些特殊符號是不起作用的, 例如:”,$,\,`(反引號)。雙引號和單引號不能嵌套。即:echo ‘””’  輸出””,  echo “’’” 輸出’’
  • ‘’  單引號。shell不會將一對單引號之間的任何字符做特殊解釋。(在雙引號中的$加變量名,即:$PARAM_NAME,不會轉換成變量的值。)
  • ``  倒引號。命令替換。在倒引號內部的shell命令首先被執行,其結果輸出代替用倒引號括起來的文本,不過特殊字符會被shell解釋。
  •   \  斜杠。用來去掉在shell解釋中字符的特殊含義。在文本中,跟在\后面的一個字符不會被shell特殊解釋,但其余的不受影響。
  •  []中括號, 主要是用來測試條件的,通常放在if語句的后面。 中括號本身不會在測試語句執行后消失。
  •  {}大括號,主要是和$符號配合,作為字符串連接來使用。echo ${HOME}ismydir   (結果:/home/xiongguoanismydir)

 

except語法:

set: 設置參數值    set timeout 30

spwan: 是進入expect環境后才可以執行的expect內部命令,使用前必須要裝except。

它主要的功能是給ssh運行進程加個殼,用來傳遞交互指令。  spawn ssh -l username 192.168.1.1

except: 是expect的內部命令,用來判斷上次輸出結果里是否包含“password:”的字符串,如果有則立即返回,否則就等待一段時間后返回,這里等待時長就是前面設置的30秒     expect "password:"

send: 執行交互動作,與手工輸入密碼的動作等效   send "ispass\r"

interact: 執行完成后保持交互狀態,把控制權交給控制台,這個時候就可以手工操作了

$argv: 參數數組,expect腳本可以接受從bash傳遞過來的參數.可以使用[lindex $argv n]獲得,n從0開始,分別表示第一個,第二個,第三個....參數

 

參考網址:https://www.cnblogs.com/chengjian-physique/p/11768641.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM