2013-07-16 5 views
0

postgresql 명령을 실행하기위한 쉘 스크립트를 작성했습니다. 다음과 같이 line 17: psql: command not foundbash 스크립트에서 Postgresql 명령 실행

내 스크립트는 다음과 같습니다 :

export PGPASSWORD=${PGPASSWORD-my_password} 
echo "enter host" 
read host 
echo "enter database name" 
read dbname 
echo "enter username" 
read username 
psql -h $host $dbname $username <<EOF 
SELECT * FROM test ; >>res.txt 
EOF 

(cat res.txt) | sed 's/;/<tab>/g' > $file.csv 
rm res.txt 
unset PGPASSWORD 

내가 잘못 뭐하는 거지 저를 제안하십시오 내가 오류를 보여주는이 스크립트를 실행하고 할 때 문제입니다.

+3

가되지 않습니다 제공해야 : psql : 명령을 찾을 수 없습니다'? psql에 대한 전체 경로를 지정하거나 존재하지 않는 경우 설치해야합니다. – devnull

+0

@devnull. 하지만 난 이미 psql을 설치했습니다 –

+0

@DEVANGPANDEY'whereis psql'에 대한 출력을 보여줄 수 있습니까? – Antarus

답변

0

지금 당신은 당신의 $ PATH에

그냥 짧은 스크립트의 전체 경로를 사용하거나 확장 할 수 있습니다

which psql 

당신이 얻을 것이다 출력

/usr/bin/psql 

같이하여 psql의 바이너리를 찾습니다 노트! 스크립트 내에 암호를 저장하지 마십시오. `라인 (17) : 특정 사용자에 대해 (psql의) 암호가 필요하다면 당신은 당신에게 문제를 이야기 .pgpass

host:db:user:password 

에 저장하고 그것을 적절한 권한 (예 : 0600)

관련 문제