이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 shellcheck 명령입니다.
프로그램:
이름
shellcheck - 쉘 스크립트 분석 도구
개요
쉘 체크 [옵션...] 파일...
기술
ShellCheck는 sh/bash 스크립트용 정적 분석 및 린팅 도구입니다. 주로 집중하고 있습니다
일반적인 초급 및 중급 수준의 구문 오류 및 위험을 처리하는 방법
쉘은 알 수 없는 오류 메시지나 이상한 동작을 제공하지만 몇 가지 보고도 합니다.
코너 케이스로 인해 지연된 오류가 발생할 수 있는 고급 문제.
ShellCheck는 쉘 관련 조언을 제공합니다. 다음 줄을 고려하십시오.
(( 면적 = 3.14*r*r ))
· #!로 시작하는 스크립트의 경우!/ 빈 / SH (또는 -s sh를 사용하는 경우) ShellCheck는 다음과 같이 경고합니다.
(( .. )) POSIX를 준수하지 않습니다(checkbashism과 유사).
· #!로 시작하는 스크립트의 경우!/ bin / bash (또는 -s bash 사용) ShellCheck는 다음과 같이 경고합니다.
소수는 지원되지 않습니다.
· #!/bin/ksh(또는 -s ksh 사용)로 시작하는 스크립트의 경우 ShellCheck는 전혀 경고하지 않습니다.
ksh는 산술 문맥에서 소수를 지원합니다.
옵션
-e CODE1[,CODE2...], --제외=CODE1[,CODE2...]
보고서에서 지정된 코드를 명시적으로 제외합니다. 후속 -e 옵션은
누적되지만 모든 코드는 한 번에 지정될 수 있으며 단일 코드로 쉼표로 구분됩니다.
논의.
-f FORMAT, --형식=FORMAT
결과를 표준으로 출력하는 shellcheck의 출력 형식을 지정합니다.
산출. 후속 -f 옵션은 무시됩니다. 참조 형식 자세한 내용은 아래를 참조하세요.
-s 껍질, --쉘=껍질
Bourne 쉘 방언을 지정하십시오. 유효한 값은 sh, 세게 때리다 and KSH. 기본값은
파일의 shebang을 사용하거나 세게 때리다 대상 포탄을 결정할 수 없는 경우.
-V 버전, --번역
버전을 인쇄하고 종료합니다.
형식
청각 장애 일반 텍스트, 사람이 읽을 수 있는 출력. 이것이 기본값입니다.
GCC GCC 호환 출력. 컴파일 및 표시를 지원하는 편집자에게 유용합니다.
구문 오류.
예를 들어, Vim에서 :set makeprg=shellcheck\ -f\ gcc\ %는 :make를 사용하여 다음을 수행하도록 허용합니다.
스크립트를 확인하고 :cnext를 사용하여 다음 오류로 이동합니다.
: : : :
체크 스타일
Checkstyle 호환 XML 출력. 직접 또는 많은 사람들이 플러그인을 통해 지원
IDE 및 빌드 모니터링 시스템.
<오류
라인='라인'
열='열'
심각도='심각도'
메시지='메시지'
source='ShellCheck.SC####' />
...
...
JSON Json은 웹 애플리케이션에 더 적합한 널리 사용되는 직렬화 형식입니다.
ShellCheck의 json은 콤팩트하며 최소한의 것만 포함합니다.
[
{
"파일": "파일 이름",
"라인": 라인 번호,
"열": 열 번호,
"level": "심각도 수준",
"코드": errorCode,
"message": "경고 메시지"
},
...
]
지시문
ShellCheck 지시문은 명령 또는
블록 :
# shellcheck 키=값 키=값
명령 또는 구조
예를 들어 ./*.jpg 사용에 대해 SC2035를 억제하려면 다음을 수행합니다.
# shellcheck 비활성화=SC2035
에코 "파일: " *.jpg
여기서 쉘 중괄호 그룹은 여러 줄에서 억제하는 데 사용됩니다.
# shellcheck 비활성화=SC2016
{
echo '$PATH 수정 중'
에코 'PATH=foo:$PATH' >> ~ / .bashrc
}
유효한 키는 다음과 같습니다.
비활성화
다음 명령에 대해 쉼표로 구분된 오류 코드 목록을 비활성화합니다. 그만큼
command는 echo foo와 같은 간단한 명령이거나 a와 같은 복합 명령일 수 있습니다.
함수 정의, 서브쉘 블록 또는 루프.
onworks.net 서비스를 사용하여 온라인에서 shellcheck 사용