암호:
iIMSI=`sqlplus -s ${APP_ORA_USER}/${APP_ORA_PASS}@${APP_DB_INST} << EOF
SET HEAD OFF PAGESIZE 0 LINESIZE 1000 TRIMOUT ON TIMING OFF
select resource_value from agd1_resources where resource_type='3'
and subscriber_id in (select subscriber_id from agd1_resources where resource_value='$sSUBSCRIBER');
exit;
EOF`
if [ "$iIMSI" = "no rows selected" ]; then
echo hello
else echo elseblock
fi
질문:
내가 지정한 값이 sSUBSCRIBER
테이블에 존재하지 않아 쿼리 결과는 "선택한 행이 없습니다"이며 iIMSI에 저장합니다.
왜 내꺼야?if 조건작동하지 않나요(항상 else 블록을 실행함)?
답변1
변수에 예상된 값이 있는지 확인하려면 echo "$iIMSI"
if 문 위 줄에 변수를 삽입하세요.
나는 다음 스크립트를 시도했다
$ cat test.sh
#!/bin/bash
iIMSI="no rows selected"
if [ "$iIMSI" = "no rows selected" ]; then
echo hello
else echo elseblock
fi
예상대로 작동합니다.
$ ./test.sh
hello