![sqlplus를 사용하여 쿼리를 실행한 후 bash 스크립트가 계속되지 않습니다.](https://linux55.com/image/169556/sqlplus%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%BF%BC%EB%A6%AC%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%9C%20%ED%9B%84%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EA%B3%84%EC%86%8D%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
여기에서는 sqlplus를 사용하여 일반 쿼리를 실행하고 결과를 CSV 파일로 덤프하려고 합니다. 그런 다음 해야 할 또 다른 작업이 있습니다. 내가 직면한 문제는 sqlplus 쿼리를 실행한 후 내 스크립트를 계속할 수 없다는 것입니다. 결과만 보고 결과만 볼 수 있습니다. 출력을 csv 파일로 덤프하지만 계속되지 않으며 결과를 보지 않고 데이터를 덤프하는 방법을 모르겠습니다.
#!/bin/bash
cd /dir/test_dir
sqlplus -s test/test <<EOF
set colsep ,
set underline off,
set headsep off,
set feedback off,
set long 99999,
set linesize 32767,
set trimspool on,
spool report(date +%Y-%m-%d).csv
select a.s, a.d, a.t, a.ww, a.tt from test a;
exit;
EOF
cd ../
mkdir test/
.
.
.
답변1
이 줄 EOF
에는 다음이 포함됩니다.선행 공백여기에서 로 시작하는 문서는 종료되지 않습니다 <<EOF
. EOF
선행 공백 없이 사용하세요 . 바꾸다
EOF
당신은 사용해야합니다
EOF
또는 리디렉션을 통해 줄을 변경한 sqlplus -s test/test <<-EOF
다음 탭 들여쓰기를 사용하세요.
리디렉션 연산자가 인 경우
<<-
입력 줄과 구분 기호가 포함된 줄에서 모든 선행 탭 문자가 제거됩니다. 이를 통해 쉘 스크립트의 문서를 자연스럽게 들여쓰기할 수 있습니다.
(원천)