혼란스러운 db2 출력

혼란스러운 db2 출력

Bash를 입력 echo $(db2 -x "select count(*) from dict_area")하면 446.

하지만 을 입력하면 echo $(db2 -x "select count(*) from dict_area";db2 -x "select count(*) from dict_area")다음과 같은 결과가 나타납니다.

SQL1024N A database connection does not exist. SQLSTATE=08003 SQL1024N A database connection does not exist. SQLSTATE=08003

이것은 내 직업과 아무 관련이 없습니다. 나는 단지 이것이 어떻게 일어 났는지 알고 싶습니다. 도와주세요?

답변1

$()에서 실행하면 하위 쉘이 호출되며 새 하위 쉘은 현재 쉘의 연결을 사용할 수 없습니다. 이것이 바로 이러한 오류가 발생하는 이유입니다.

서브셸에서 작업을 실행하려면 매번 연결을 설정하세요. 또는 출력을 파일에 쓴 다음 출력을 처리하여 현재 파일에서 실행합니다.

echo $(db2 connect to sample > /dev/null; db2 -x "select count(*) from dict_area")

또는

db2 connect to sample
db2 -x "select count(*) from dict_area" > /tmp/output
echo $(cat output)

관련 정보