title: Unterminated string / Syntax Error with Bash
body: <p>I'm trying to get the follow code to read in variables from the user; files to search, a search string, wanted whitespace for output and the amount of fields to be output.</p>
  
  <p>First issue is with the AWK command. If I enter a valid white space such as " " (A single space" or "\t" I am given the Unterminated string and syntax error, which only occurs if I request more than one field to be output (otherwise no whitespace is added on).</p>
  
  <p>Secondly GREP seems to be a bit picky when using the search string. I've had to add double quotation marks to the start and finish of the variable in order for the entire string to be used.</p>
  
  <pre><code>#!/bin/bash
  #****************************************************
  #Name:          reportCreator.sh
  #Purpose:       Create reports from log files
  #Author:        
  #Date Written:      11/01/2013
  #Last Updated:      11/01/2013
  #****************************************************
  
  clear
  
  #Determine what to search for
  printf "Please enter input file name(s): "
  read inputFile
  printf "Please enter your search query: "
  read searchQuery
  printf "Please enter the whitespace character: "
  IFS= read whitespace
  printf "Please enter the amount of fields to be displayed: "
  read fieldAmount
  
  #Add quotation marks to whitespace and searchQuery
  whitespace=\""$whitespace"\"
  searchQuery=\""$searchQuery"\"
  
  #Declare variables
  declare -i counter=0
  declare -a fields[$fieldAmount]
  declare -a fieldInsert[$fieldAmount]
  
  #While loop for entering fields
  while [[ "$counter" -ne "$fieldAmount" ]]
  do
          #Ask for field numbers
          printf "Please enter number for required field $((counter+1)): "
          read fields[$counter]
          ((counter++))
  done
  
  #Create function to add '$' before every field and the whitespace characters
  function fieldFunction 
  {
      for (( counter=0; counter &lt;= ($fieldAmount-1); counter++ ))
      do
          fieldInsert[$fieldAmount]="$""${fields[$counter]}"
          if (( counter!=($fieldAmount-1) ))
          then
              printf "${fieldInsert[*]}$whitespace"
          else
              printf "${fieldInsert[*]}"
          fi  
      done
  }
  printf "%b\n"
  
  tac $inputFile | grep "$searchQuery" | less #| awk '{print $(fieldFunction)}'
  
  exit 0
  </code></pre>
  
  <p>Any help would be appreciated.</p>