r4pt0r hat geschrieben:
Es hängt hier nur an dieser Pipe (die für "copy from" benötigt wird) und dass bash bei Ausführung per Script eben NICHT piped sondern die Ausgabe von "cat" verarbeiten will...
Ich vermute, dass das Problem in keiner Weise etwas mit der Bash zu tun hat. Denn die Bash piped sehr wohl und sie verarbeitet keine Ausgabe von cat.
Ich vermute, dass es sich hier nur um ein Problem mit psql handelt.
Mir scheint, dass psql SQL-Befehle von stdin lesen will. Normalerweise wird es wohl interaktiv verwendet und liest sie somit (via stdin) vom Terminal. Man kann es aber wohl auch automatisiert aufrufen, in der Art
<befehle.sql psql oder in der Art
psql -c "sql-befehl". Scheinbar kann man die zwei Arten auch kombinieren:
<befehle.sql psql -c "sql-befehl". Dann scheint er sie nacheinander auszufuehren. Vielleicht liegt das Problem nur daran, dass er zuerst stdin verarbeitet und dann
-c (falls dem so ist). Oder es liegt daran, dass man ``COPY ... FROM STDIN'' nur im interaktiven Modus verwenden kann.
Das jedenfalls sind die mir momentan vorstellbaren Erklaerungen.
(Ich sollte wohl noch erwaehnen, dass ich psql(1) nie verwendet habe. Ich habe nur seine Manpage ueberflogen und verwende mysql(1) ab und an.)
... vielleicht wirst du um eine temporaere Datei nicht rum kommen.