在执行他的bash脚本时,我遇到了一个问题。目前,在意外令牌'fi'附近收到错误说法语错误。 '连接'。
USER_TYPE=$1 #IDENTIFY USER TYPE TYPE1,TYPE2,TYPE3,TYPE4,TYPE5
USER_NAME=$2
TARGET_SCHEMA=$3
TARGET_TABLE=$4
PERMISSION_TYPE=$5
if $USER_TYPE == 'TYPE1';
then
sqlplus / << E00
CREATE USER ${USER_NAME}
IDENTIFIED BY "default"
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
ACCOUNT UNLOCK;
ALTER USER ${USER_NAME} DEFAULT ROLE ALL;
GRANT CREATE SESSION TO ${USER_NAME};
GRANT CONNECT TO ${USER_NAME};
exit
E00
cat perm.txt |while read PERMISSION OWNER TABLE USER
do
sqlplus / as sysdba > /home/o/direct/Passa/output/output.log << E01
GRANT $PERMISSION ON $OWNER.$TABLE TO $USER;
E01
fi
答案 0 :(得分:2)
您错过了done
循环的while
关键字。
cat perm.txt |while read PERMISSION OWNER TABLE USER
do
sqlplus / as sysdba > /home/o/direct/Passa/output/output.log << E01
GRANT $PERMISSION ON $OWNER.$TABLE TO $USER;
E01
done
fi
顺便说一句,这是一个UUOC。您可以使用输入重定向
while read PERMISSION OWNER TABLE USER
do
sqlplus / as sysdba > /home/o/direct/Passa/output/output.log << E01
GRANT $PERMISSION ON $OWNER.$TABLE TO $USER;
E01
done < perm.txt