cgibashopts
1.0.0
Cgibashopts는 이진 파일 업로드를 사용하여 Bash Shell Web CGI 스크립트의 웹 양식 매개 변수를 구문 분석하는 작고 빠른 순수한 Bash 라이브러리입니다. 제한없이 무료로 사용할 수 있습니다 (MIT 라이센스). (c) Colas Nahaboo 2017
cgibashopts 파일을 복사하십시오. 예를 들어 /usr/local/bin/cgibashoptssource /usr/local/bin/cgibashopts 또는 . /usr/local/bin/cgibashoptsfoo 의 값 (예 : html 페이지 : <input type=text name=foo> )을 쉘 환경의 값 변수로서 $FORM_foo 로 찾을 수 있습니다.문제 해결 :
tests/tewiba -v 실행하여 테스트 스위트가 문제를 감지하는지 확인하십시오.bash , grep , sed 의 GNU 버전이 필요합니다. 이것을 테스트하려면 grep -P . /dev/null , 오류가 발생하지 않아야합니다. 그렇다면 MacOS , BusyBox, FreeBSD, BSD 및 SYSV 파생 상품과 같이 기본적으로 GNU 유틸리티를 사용하지 않는 UNIX와 같은 시스템에 설치해야합니다.bash , coreutils , grep , sed 의 GNU 버전 패키지를 설치해야합니다.$FORMS 으로 공간 분리 된 이름 문자열로 나열됩니다. 예 : echo "$FORMS" ==> foo bar gee . 매개 변수 이름은 HTML 양식의 다양한 HTML 요소의 name 속성으로 지정된 이름이거나 wget 또는 curl 같은 명령을 통해 전송 된 이름입니다. 매개 변수 이름은 배쉬의 법적 변수 이름이어야합니다. 영숫자 문자 및 밑줄은 숫자로 시작하지 않아야합니다.foo 라는 HTML 양식 요소의 경우 $FORM_foo .<input type=file name=file1> 와 같은 양식 요소를 통해 Cgibashopts는 매개 변수 이름 (여기서 file1 )을 변수 $ formfiles에 배치합니다. 업로드 된 파일의 실제 이름은 변수 값 (여기 $FORM_file1 )에서 찾을 수있는 반면 파일의 내용은 $CGIBASHOPTS_DIR 디렉토리의 변수별로 명명 된 로컬 파일에서 찾을 수 있습니다 (여기 $CGIBASHOPTS_DIR/file1 ).cgibashopts_clean 스크립트 끝에서 호출 하여 임시 디렉토리 $CGIBASHOPTS_DIR 업로드 된 파일을 저장하는 경우 -n 옵션 (아래 참조)이 사용되지 않은 경우. cgibashopts는 trap cgibashopts_clean 0 사용하여 스크립트 끝 에서이 함수가 자동으로 호출되도록하므로 trap 0 직접 사용하지 않는 한 아무것도 할 필요가 없으므로 Exit 신호를 cgibashopts_clean 에 extit 신호를 처리해야합니다.trap 0 이 지워집니다. 따라서 cgibashopts 소싱 후 트랩을 0으로 설정하십시오file 의 입력 요소를 사용하는 경우에만 필요합니다.cgibashopts_clean 기능을 직접 호출 할 수 있으므로 더 이상 필요하지 않으며 나중에 원하는대로 트랩을 자유롭게 사용할 수 있습니다.$CGIBASHOPTS_DIR 또는 함수 cgibashopts_clean 정의하지 않으며 트랩을 사용하지 않습니다. 참고 : 이것은 버전 3 이상에서만 사용할 수 있습니다. 사용의 예 : . cgibashopts -n/tmp . cgibashoptions는 cgibashopts-files.$$ 하위 디렉토리 ( $$ 는 $CGIBASHOPTS_DIR 변수에 표시된 $$가 인스턴스 당 고유 한 Bash 프로세스 번호입니다).CGIBASHOPTS_RELEASE 릴리스 버전을 보유하고 있으며 Cgibashopts Libray의 시맨틱 버전 (예 : 4.0.1, 4.4.3)을 사용합니다.CGIBASHOPTS_VERSION 주요 버전 번호 (위의 CGIBASHOPTS_RELEASE 의 첫 번째 정수, 거꾸로 호환성을 유지합니다.urldecode 변수에서 문자열을 가져 와서 디코딩 된 버전을 출력하고, 공백에서 + 변환하고 16 진수 ASCII 코드 XX (eg %41이 A)의 특성에서 %XX 변환하고 캐리지 리턴을 제거합니다.urlencode . 둘 다 바이너리 Linux 명령보다 빠릅니다.$nl 과 $cr Newline과 Carriage Return 문자를 보유합니다.param 함수를 통한 것입니다. 이것은 사용 된 사람들 (또는 스크립트)을위한 Bashlib와 호환되는 편의 기능입니다.param FORMS 의 값을 출력합니다param foo FORM_foo 의 값을 출력합니다param foo a string... FORM_foo 의 값을 "a string..." 로 설정합니다.param -f 인쇄 $FORMFILESparam -f foo prints $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 와 함께 시맨틱 버전으로 전환했습니다