【发布时间】:2016-08-15 20:03:42
【问题描述】:
我在执行他的 bash 脚本时遇到了问题。目前,在意外标记“fi”附近收到错误提示语法错误。 '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
【问题讨论】:
-
我将删除 sqlplus 和 Oracle 标签,因为这是一个 shell 脚本问题(“fi”与 Oracle 或 sqlplus 无关)。
-
修复语法。请看:shellcheck.net
标签: bash shell while-loop