在bash中执行psql查询

时间:2014-10-20 06:45:27

标签: bash psql

我在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行:选择               ^

为什么?任何帮助,意见或建议将不胜感激。

0 个答案:

没有答案