Use cat instead of echo or awk, to avoid portability problems with backslashes.
authorTom Lane <[email protected]>
Wed, 13 Nov 2002 16:40:29 +0000 (16:40 +0000)
committerTom Lane <[email protected]>
Wed, 13 Nov 2002 16:40:29 +0000 (16:40 +0000)
src/test/regress/pg_regress.sh

index af3ea59256368851ff077c855ce3080e4ce28e19..db0bb7b6fd624ed18f0f9b62dd21c8df63e1baf2 100644 (file)
@@ -545,16 +545,22 @@ do
         formatted=`echo $1 | awk '{printf "%-20.20s", $1;}'`
         $ECHO_N "test $formatted ... $ECHO_C"
 
-       # use awk to properly output backslashes
-        (echo "SET autocommit TO 'on';"; awk 'BEGIN {printf "\\set ECHO all\n"}'; cat "$inputdir/sql/$1.sql") |
+        (cat <<EOF
+SET autocommit TO 'on';
+\\set ECHO all
+EOF
+        cat "$inputdir/sql/$1.sql") | \
         $PSQL -d "$dbname" >"$outputdir/results/$1.out" 2>&1
     else
         # Start a parallel group
         $ECHO_N "parallel group ($# tests): $ECHO_C"
         for name do
             ( 
-             # use awk to properly output backslashes
-              (echo "SET autocommit TO 'on';"; awk 'BEGIN {printf "\\set ECHO all\n"}'; cat "$inputdir/sql/$name.sql") |
+             (cat <<EOF
+SET autocommit TO 'on';
+\\set ECHO all
+EOF
+              cat "$inputdir/sql/$name.sql") | \
              $PSQL -d $dbname >"$outputdir/results/$name.out" 2>&1
               $ECHO_N " $name$ECHO_C"
             ) &