데이터베이스의 조건을 사용하여 쉘 스크립트를 작성하는 방법

데이터베이스의 조건을 사용하여 쉘 스크립트를 작성하는 방법

이것을 확인해야 할 조건으로 생각하세요.

select count(*) from nm.table1 where column1 =true; 

이제 데이터베이스(PostgreSQL)에서 가져와 IF THEN ELSE LOOPUnix에서 사용해야 합니다.

그것은 마치

if [ $count > 1]
then
  echo " Successful"
else
  exit
fi

답변1

다음에서는 psql을 실행하는 unix 사용자가 "nm.table1"에 액세스할 수 있는 postgresql 계정을 가지고 있다고 가정합니다. 그렇지 않은 경우 psql에 인증 세부 정보도 제공해야 합니다.

가장 좋은 방법은~/.pgpass인증 세부정보가 포함된 파일입니다.

어쨌든 인증 문제가 해결되면 psql쿼리에서 데이터를 가져오는 것은 다른 명령에서 데이터를 가져오는 것만큼 간단합니다.명령 대체작업을 수행합니다.

의 경우 또는 옵션을 사용하여 머리글 및 바닥글 인쇄를 비활성화하고 또는 옵션을 사용하여 정렬되지 않은 인쇄 모드(즉, 출력을 채우기 위해 추가 공백이 인쇄되지 않음)를 활성화하려고 psql합니다 . 물론 or 옵션은 다음 매개변수가 실행될 SQL 명령이 될 것임을 알려줍니다.-t--tuples-only-A--no-align-c--commandpsql

count=$(psql -tAc 'select count(*) from nm.table1 where column1=true;')

if [ "$count" -gt "1" ] ; then
  echo " Successful"
else
  exit
fi 

관련 정보