我在bash脚本中执行psql-query时遇到问题。 以下是我的代码。
run_sql(){
sql_sel="$1;";#sql select
table=$2;#table name
for i in "${!GP_SERVER_NAMES[@]}"
do
logmsg "Executing [$sql_sel] on "${GP_SERVER_NAMES[$i]}": " $loglvl;
result_host[$i]=`${PSQL_HOST[$i]}${sql_sel}`;
#result_host[$i]=cleanresult "`$(${PSQL_HOST[$i]} "$tx_fix $sql_sel" 2>&1`");
if [[ `checkresult "${result_host[$i]}"` != 'true' ]]; then
logmsg "Error occured during sql select: Result for "${GP_SERVER_NAMES[$i]}" '${table}': ${result_host[$i]};" '1' '1';
raise_alarm "${GP_SYNC_SQL_ERR}" "${i}" "${table}" "${result_host}";
fi
logmsg "Result for" ${GP_SERVER_NAMES[$i]} " '${table}': ${result_host[$i]}";
done
final_result='true';
for i in "${!result_host[@]}"
do
if [[ `checkresult "${result_host[$i]}"` = 'true' ]]; then
final_result='false';
我正在尝试使用以下命令在许多不同的服务器上执行查询
result_host [$ I] = ${PSQL_HOST[$i]}${sql_sel}
;
以上变量具有以下含义:
1. result_host [$ i]:是一个包含sql查询的第i个结果的数组。
2. PSQL_HOST [$ i]:是命令行psql-statement,包括表单的IP地址
psql -t -q -h -U password -d database -c
3. $ sql_sel:是sql_statement
当我运行脚本时,我得到以下输出。
scriptname.sh:line 168:找不到SELECT:命令 错误:输入结束时的语法错误 第1行:选择 ^
为什么?任何帮助,意见或建议将不胜感激。