2016-09-06 2 views
0

Oracle에서 일부 DML을 수행하는 bash 스크립트가 있습니다. 내가 로그 파일 (오직 ORA-XXXXX 부분)에서 오라클 오류를 잡으려고하지만 오라클 오류 메시지 이외에 출력에서 ​​나는 bash 스크립트가 실행되고있는 디렉토리 내용을 얻는다. (거의 ls 명령이 실행되었다.) 유일한 Oracle 오류 코드를 얻고 디렉터리 내용을 음소거/리디렉션하는 명확한 방법이 있습니까?bash에서 Oracle 오류 처리

give_me_error other_script.sh this_script.sh

ERROR at line 1: ORA-00942: table or view does not exist

에서 순간 other_script.sh this_script.sh을 선택, 최고의 다음과 같이 위의 코드에서

#!/bin/bash 

. /path/to/configfile/config.conf 

res=`sqlplus -S $my_user << ! 
    set head off; 
    set feedback off; 

    select * from give_me_error; 

!` 

출력은 내가 가진 아이디어는 변수 res (위의 코드 참조)에 grep을 사용하고 있습니다. 미리 감사드립니다!

P. 사용자 지정 오류 코드가 정말이 경우 옵션이

배쉬되지 않습니다 - 4.1.2 오라클 11.2.0.4.0 EE

답변

0

당신은 globbing을 해제 할 수 있습니다

#!/bin/bash 

. /path/to/configfile/config.conf 

# turn of globbing to prevent directory content expansion 
set -o noglob 

res=`sqlplus -S $my_user << ! 
    set head off; 
    set feedback off; 

    select * from give_me_error; 

!` 

echo $res 
# or 
printf "$res\n" 

명령의 결과는 globbing이 생성하는 확장 파일 목록이 아닌 실제 * 문자를 갖습니다.

+0

매우 깨끗하고 간단한 해결책입니다. 감사합니다! –