shell如何连接到其它用户执行脚本

我原来有个脚本是放在root下执行的,后面新建了个用户app,需要把脚本改成在这个新用户下执行,但是里面有调用oracle的存储过程,现在执行就报“standard in must be a tty”错误,大家帮忙看下如何解决,或者应该如何写才对,谢谢,脚本如下:
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/10.2.0/db_1
export ORACLE_SID=ETL
export PATH=$ORACLE_HOME/bin:$PATH
##########################################
su - oracle -c "sqlplus  etl/etl@ETL" << !
exec PROC_BACKUP_TEST;
exit                                                                                                                                
!

作者: ljx198308   发布时间: 2011-03-25

加入一个组,开放组权限

作者: 相思爱文   发布时间: 2011-03-25

我已经把app这个用户和oracle放在同一个组了,可还是不行,麻烦再帮忙看下,谢谢

作者: ljx198308   发布时间: 2011-03-25

呵呵,问题已经搞定了,共享给大家一下,其实就是不用再去连oracle用户了,两个都属于同一组就可以直接执行了,所以改成如下就可以
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=/oracle/app/product/10.2.0/db_1
export ORACLE_SID=ETL
export PATH=$ORACLE_HOME/bin:$PATH
##########################################
sqlplus  etl/etl@ETL << EOF
exec PROC_BACKUP_TEST;
exit                                                                                                                                
EOF

作者: ljx198308   发布时间: 2011-03-25