0

我有一个带有数组的shell,其中有一个oracle db的表列表。这是数组:

ListTabs=""
ListTabs=$ListTabs"T_Tab1\n"
ListTabs=$ListTabs"T_Tab2\n"
ListTabs=$ListTabs"T_Tab3"   
echo $ListTabs
arrArr=0
IFS=\n
for listArr in ${ListTabs[@]}; 
do 
     #echo $listArr
     MYDIR[${ARR}]=$listArr
     (( arrIdx = $ARR+ 1 ))
done

然后我有一个带有 sqlplus 连接的选择

sqlplus -S -L ${MYCONNCTIONDB} @${FILE_SQL}

当我尝试运行 shell 时,出现错误:ORA-01017:用户名/密码无效;登录被拒绝。我确定连接是正确的,因为如果我删除数组,shell 就会运行良好。有任何想法吗?

4

1 回答 1

1

对于您正在设置的阵列IFS

IFS=\n

...这也会影响脚本后面的字符串解释。您可以unset IFS在数组部分之后,也可以在设置之前将旧值存储在临时变量中(O_IFS=$IFS; IFS=\n),然后将其恢复(IFS=$O_IFS; unset O_IFS)。

于 2013-05-15T10:47:18.183 回答