我收到" 语法错误:"("意外(期待"}")"创建时出错我的脚本中的变量。我希望从sqlplus获取输出并将其作为数组返回。这是我正在使用的函数:
get_list() {
ip=$1
port=$2
db_user=$3
db_pass=$4
names_array=(`sqlplus -S $db_user/$db_pass@$ip:$port << EOF
set heading off
set feedback off;
select username from users;
EOF`)
element=0
while [ $element -lt ${names_array[*]} ]
do
echo ${element}") "${names_array[$element]}
let element=$element+1;
done
printf "\n\n"
read -p "Choice:" selection
sqlplus -S $db_user/$db_pass@$ip:$port << EOF
drop user ${names_array[$selection]};
quit;
EOF
}
我在这里声明数组时发生错误。这是bash抱怨的括号:
names_array=(`sqlplus -S $db_user/$db_pass@$ip:$port << EOF
感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
某些shell(sh,dash)不支持数组。使用支持它们的bash。
我可以在破折号中复制错误:
arr=(`cat << EOF
a
b
c
EOF`)
dash: 11: Syntax error: word unexpected (expecting ")")
在bash中,代码可以正常运行:
arr=(`cat << EOF
a
b
c
EOF` )
echo ${arr[1]}
输出:
b