2017-11-03 7 views
0

에 저장, 나는 경우 MSSQL 데이터베이스의 테이블 종료가 있는지 확인하려고 :SQLCMD 고정 표시기 컨테이너에서 실행 변수

RESULT='/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i "SELECT name FROM master.sys.databases WHERE name = N'MyTable'"' 
    if [ "$RESULT" == "MyTable" ]; then 
     echo YES 
    fi 
    echo "$RESULT" 

echo "$RESULT" 언제나 문자열로 전체 명령 출력의 실행되지 않습니다. 그래서 그것의 단지 그것을 할당으로 ...

어떻게 그것을 실행하고 결과를 지정할 수 있습니까?

+1

는해야하지 그것은'RESULT = $ (...)'일까요? 'RESULT ='... ''가 아닌? 참조 : https://stackoverflow.com/questions/4651437/how-to-set-a-variable-to-the-output-from-a-command-in-bash – codeforester

답변

0

Bash는 작은 따옴표로 정의 된 명령을 실행하지 않습니다. 작은 따옴표는 문자열 정의에 사용됩니다.

당신이하려고하는 것은 명령 대체입니다. 그리고 그것은 두 가지 방법으로 수행 할 수 있습니다 그래서 당신의 예는 다음과 같아야합니다

RESULT=`command` 
RESULT=$(command) 

: 당신은 여기에 명령 치환에 대한 자세한 정보를 찾을 수 있습니다

RESULT=`/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i "SELECT name FROM master.sys.databases WHERE name = 'MyTable'` 
if [ "$RESULT" == "MyTable" ]; then 
    echo YES 
fi 
echo "$RESULT" 

: https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html