cgibashopts
1.0.0
CGIBASHOPTS是一個小而快速的純bash庫,即使使用二進製文件上傳,也可以解析bash shell shell web cgi腳本的Web表單參數。它是無限制的免費使用(麻省理工學院許可證)。 (c)Colas Nahaboo 2017
cgibashopts 。例如/usr/local/bin/cgibashoptssource /usr/local/bin/cgibashopts或. /usr/local/bin/cgibashoptsfoo (例如,html頁面中: <input type=text name=foo> ),然後可以作為shell環境變量的值$FORM_foo找到。故障排除:
tests/tewiba -v以查看測試套件是否檢測到問題。bash , grep , sed 。要測試這一點,請運行grep -P . /dev/null ,您不應遇到錯誤。如果這樣做,則應將它們安裝在類似於Unix的系統上,默認情況下不使用GNU實用程序,例如MacOS ,BusyBox,FreeBSD,BSD和SYSV衍生產品...bash , coreutils , grep , sed的GNU版本的軟件包$FORMS列出為空間分隔的名稱字符串。例如: echo "$FORMS" ==> foo bar gee 。參數名稱是html form中各種HTML元素中name屬性指定的參數名稱,或通過wget或curl等命令發送的參數名稱。參數名稱必須是bash的法律變量名稱:字母數字字符和下劃線,而不是從數字開始。$FORM_foo用於html表單元素,名為foo 。<input type=file name=file1>的表單元素,cgibashopts將參數名稱(there file1 )放入變量$ formfiles,這是所有收到的所有文件參數名稱的空間分隔列表。上載文件的實際名稱可以在變量值(以下$FORM_file1 )中找到,而該文件的內容可以在$CGIBASHOPTS_DIR $CGIBASHOPTS_DIR/file1 )cgibashopts_clean ,以刪除存儲上載文件的臨時目錄$CGIBASHOPTS_DIR ,如果不使用-n選項(請參見下文)。 CGIBASHOPTS執行trap cgibashopts_clean 0 ,以便在腳本末尾自動調用此函數,因此您無需執行任何操作,除非您自己使用trap 0 ,從而確保您必須確保處理exit信號的代碼明確調用cgibashopts_clean 。trap 0 。因此,將陷阱0設置在採購CGIBASHOPT之後file的輸入元素時,才需要調用CGIBASHOPTS_CLEANcgibashopts_clean函數,因此不再需要它,並且您可以隨意使用陷阱。$CGIBASHOPTS_DIR或函數cgibashopts_clean ,也不使用陷阱。注意:這僅在版本3及更高版本中可用。使用的示例: . cgibashopts -n/tmp 。 cgibashoptions將在其中創建一個cgibashopts-files.$$子目錄(其中$$是bash過程編號,每個實例唯一),顯示在$CGIBASHOPTS_DIR變量中。CGIBASHOPTS_RELEASE持有發行版,使用所使用的cgibashopts庫的語義版本(例如4.0.1,4.4.3),在此頁面末尾列出了更改歷史上的版本...CGIBASHOPTS_VERSION保留了主要版本號(上面的CGIBASHOPTS_RELEASE的第一個整數,以使其向後兼容。+的urldecode ,在HexadeCimal ASCII Code XX(例如%41變成a)中轉換 + %XX ,並刪除托架返回。urlencode 。兩者都比二進制Linux命令快。$nl和$cr保留新線和一個馬車返回字符param函數。這只是與Bashlib兼容的便利函數,用於使用它的人(或腳本)。param無參數輸出FORMS的值param foo輸出FORM_foo的值param foo a string...將FORM_foo的值設置為"a string..."param -f打印$FORMFILESparam -f foo打印$FORMFILE_fooparam -f foo a string...將FORMFILE_foo的值設置為"a string..." 提供了一個測試套件,可以通過./tests/RUN-ALL-TESTS運行,有關更多詳細信息,請參見目錄tests中的readme.md
歡迎您複製和增強該項目,並通過以下方式提供錯誤報告,反饋和建議。
Content-Type和Content-Disposition HTTP標頭中僅將半隆被理解為分離器。修復以也使用逗號。 “ Florin-CTU”報告的錯誤,第8期和#9。CGIBASHOPTS_RELEASE