2017-10-05 8 views
0

나는 bash 스크립트 "domain-ssl-status.sh"를 가지고 있습니다. 나는 다음과 같은 방법으로 스크립트를 실행할 수 있도록 내가이 개 인수 스크립트가 필요합니다bash 스크립트가 두 개의 인수를 전달하여 ssl의 상태를 얻습니다.

./domain-ssl-status.sh cname.domain.com 상태를 | 얻을 | | unobtained 오류

는 domainName 및 상태는 내 2 개 인자

는 domainName = $ 1, 상태 = $ 2

내가 case 문을 사용하여 status_map을 만드는 시도,하지만 행운입니다! 나는 또한 여기에 다른 힌트를 보았으나 내 일은 결코 보이지 않는다. 내 SQL 문에 SELECT * FROM DomainSSL WHERE domainName = 'cname.domain.com'이 포함되어 있습니다.

+0

스크립트 구조의 예를 보겠습니다. –

+0

서식을 편집 할 수 있도록 게시물을 편집하십시오. ;) –

+0

#!/bin/bash domainName = $ 1 status = $ 2 while [[$ # -gt 0]]; 사례 "$ 1" 상태) mssql -f csv -c ~/applications/mssql/mssql.json -q "SELECT * FROM DomainName = '$ 1'" ;; *) 는 "잘못된 인수 : $ 1"에코 1 번 출구 ESAC "는 domainName은 = '$ 1' '$ 2'DomainSSL SELECT * FROM" – jphil1971

답변

0

재 작성의 거친 패스 -

#!/bin/bash 
domainName=$1 
status=$2 
echo "Verifying domain" 
case status in 
$status) ping -c 1 $domainName || { 
      echo "Cannot ping $domainName" >&2 
      exit 1 
     } ;; 
*) echo "Invalid argument '$status'" >&2 
    exit 1 ;; 
esac 

sql="SELECT * FROM DomainSSL WHERE domainName='$domainName'" 
mssql -f csv -c ~/applications/mssql/mssql.json -q "$sql" # mark here 
rc=$? 
if ((rc)) # nonzero 
then echo "FAIL: rc $rc on [$sql]" >&2 
else echo "SUCCESS: $sql" 
fi 

당신은 나중에 분석을위한 표준 출력과 표준 에러를 저장하려고 할 수 있습니다. 상기 # mark에서 다시 쓰기 ,

mssql -f csv -c ~/applications/mssql/mssql.json -q "$sql" >ok 2>oops 
rc=$? 
if ((rc)) # nonzero 
then echo -e "FAIL: rc $rc on [$sql]:\n$(<oops)" >&2 
    case "$(grep SQLSTATE oops)" in 
    *ER_DUP_KEY*) : code to handle duplicate keys error ;; 
    # any other errors you choose to handle . . . 
    *) : code for bailing on errors you don't care to handle ;; 
    esac 
else echo "SUCCESS: $sql" 
fi 

로 페놀 mysql 문서 here

이것은 일반적인 템플릿 일뿐입니다. 희망이 도움이됩니다. 설명을 요청하십시오.

+0

스크립트를 실행할 때 SQL 상태를 확인해야하며 숫자를 얻으려고합니다. 전의. 1- 획득 2-unobtain 3 오류 ./domain-ssl-status.sh 'cname.domain.com' '상태 | unobtained | acquired | error' – jphil1971

+0

다음은 도움이 필요합니다. ! 1. 2 개의 매개 변수를 허용하는 스크립트가 필요하고 그렇지 않으면 2가됩니다. 2. case 문을 사용하여 매개 변수 2의 다른 동작을 처리합니다. SQL의 domainSSLStatusId는 숫자가 아닌 문자열입니다! 지도 만들기 – jphil1971

+0

왜 그렇게 구체적입니까? –