출력 파일에 SQL 쿼리를 표시하려면 어떻게 해야 합니까?

출력 파일에 SQL 쿼리를 표시하려면 어떻게 해야 합니까?

입력(SQL 쿼리)과 출력을 로그 파일에 캡처하는 동안 셸 스크립트에서 일련의 쿼리를 실행하려고 합니다.

그러나 입력 쿼리는 출력과 함께 표시되지 않습니다. 로그 파일에는 출력만 캡처됩니다. 해당 입력과 함께 입력 쿼리를 캡처하는 방법이 있습니까?

설정했는데 echo on여전히 작동하지 않습니다.

답변1

쉘 스크립트가 bash 또는 sh인 경우 -x스위치를 shebang에 추가한 다음 스크립트를 실행할 수 있습니다. 일반적으로 쉘 스크립트 디버깅에 사용되며 실행하기 전에 다음 줄/명령을 인쇄합니다. 따라서 다음 예제 스크립트가 있으면 파일에 기록됩니다.logfile

#!/bin/bash -x
echo "Hello world!" >> logfile
echo "Second command!" >> logfile

그런 다음 스크립트를 실행하면 ./script 2>> logfile로그 파일이 다음과 같이 표시됩니다.

+ echo 'Hello world!'
Hello world!
+ echo "Second command!" 
Second command!

답변2

SQL 클라이언트는 결과를 표시하기 전에 쿼리를 에코하는 옵션을 제공할 수 있습니다. 예를 들어, 한 번 사용한 후에 이를 수행할 수 있는 옵션이 mysql있습니다 .-v

입력하다:

echo "select 1 from dual" | mysql -v --table --user=u --password=p --host=h

산출:

--------------
select 1 from dual
--------------

+---+
| 1 |
+---+
| 1 |
+---+

관련 정보