Hi,
Mybe you have used a named pipe. Here is some idea :
#make a named pipe calle ftp.fifo
mknod ftp.fifo p
#give values to some VARS
IP_ADDRESS=1.2.3.4
LOGIN_FTP=your_choice
PASSWD=your_passwd
# execute ftp with a here file in background and send the named pipe
ftp -i -n -v $IP_ADDRESS <<!END &
user $LOGIN_FTP $PASSWD
cd /some/direction
send ftp.fifo
qui
!END
# at this stage, ftp will wait for the data in ftp.fifo and will stop at the receivein of END_OF_FILE (CTRL_D)
# from another filter like oracle export, write to ftp.fifo
exp $ORACLEUSER/$ORACLE PASSWORD BUFFER=4096 COMPRESS=Y GRANTS=Y FILE=ftp.fifo LOG=/tmp/export.log OWNER=$ORACLEUSER
# when oracle export is done, ftp will stop
Ali