Tidy up quiet wrappers

Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/tests/scripts/quiet/make b/tests/scripts/quiet/make
index 9722029..3eae91c 100755
--- a/tests/scripts/quiet/make
+++ b/tests/scripts/quiet/make
@@ -11,20 +11,18 @@
 # VERBOSE_LOGS=1
 
 # don't silence invocations containing these arguments
-NO_SILENCE=" --version | test "
+NO_SILENCE=" --version | test"
 
 TOOL=$(basename "$0")
 
 # Locate original tool
-ORIGINAL_TOOL=$(type -ap ${TOOL} | grep -v "$0" | head -n1 )
+ORIGINAL_TOOL=$(type -ap "${TOOL}" | grep -v -Fx "$0" | head -n1 )
 
-quote_args() {
+print_quoted_args() {
     # similar to printf '%q' "$@"
     # but produce more human-readable results for common/simple cases like "a b"
-    local args=("$@")
-    s=""
-    for a in "${args[@]}"; do
-        simple_pattern='^([[:alnum:]_+-]+=)?([[:alnum:] _=+-]*)$'
+    for a in "$@"; do
+        simple_pattern='^([[:alnum:]_+-]+=)?([[:alnum:] _=+-./:@]*)$'
         if [[ $a =~ ' ' && $a =~ $simple_pattern ]]; then
             # a has spaces, but no other special characters that need escaping
             # (quoting after removing spaces yields no backslashes)
@@ -33,39 +31,40 @@
             #   CFLAGS=a b -> CFLAGS="a b"
             q="${BASH_REMATCH[1]}\"${BASH_REMATCH[2]}\""
         else
-            # get bash to do the quoting
+            # get bash to do the quoting (which may result in no quotes or escaping,
+            # if none is needed).
             q=$(printf '%q' "$a")
         fi
-        s="$s $q"
+        printf "%s " "$q"
     done
-    echo $s
 }
 
-if [[ ! " $@ " =~ " --version " ]]; then
+if [[ ! " $* " =~ " --version " ]]; then
     # Display the command being invoked - if it succeeds, this is all that will
     # be displayed. Don't do this for invocations with --version, because
     # this output is often parsed by scripts, so we don't want to modify it.
-    echo "${TOOL} $(quote_args "$@")"
+    printf %s "${TOOL} "
+    print_quoted_args "$@"
+    echo
 fi
 
 if [[ " $@ " =~ $NO_SILENCE || -n "${VERBOSE_LOGS}" ]]; then
     # Run original command with no output supression
-    ${ORIGINAL_TOOL} "$@"
-    EXIT_STATUS=$?
+    exec "${ORIGINAL_TOOL}" "$@"
 else
     # Run original command and capture output & exit status
-    TMPFILE=$(mktemp /tmp/quiet-${TOOL}.XXXXXX)
-    ${ORIGINAL_TOOL} "$@" > ${TMPFILE} 2>&1
+    TMPFILE=$(mktemp "quiet-${TOOL}.XXXXXX")
+    "${ORIGINAL_TOOL}" "$@" > "${TMPFILE}" 2>&1
     EXIT_STATUS=$?
 
     if [[ $EXIT_STATUS -ne 0 ]]; then
         # On error, display the full output
-        cat ${TMPFILE}
+        cat "${TMPFILE}"
     fi
 
     # Remove tmpfile
-    rm ${TMPFILE}
-fi
+    rm "${TMPFILE}"
 
-# Propagate the exit status
-exit $EXIT_STATUS
+    # Propagate the exit status
+    exit $EXIT_STATUS
+fi