I'm trying to loop over all environment variables in a shell script, and create an HTML query string from ones which match a pattern. Unfortunately, I can't seem to assign to variables in the loop. I've got this:

#!/bin/sh
IFS=$'\n'
TAGS=""
for item in $(printenv)
do
   if [[ $item == FOO_TAG_* ]]
   then
       TAGS = "${TAGS}&${item}"
   fi
done

But this gives me

/etc/script.sh: line 9: TAGS: command not found
/etc/script.sh: line 9: TAGS: command not found

How do I fix this?

有帮助吗?

解决方案

In the assignment, remove space between variable name and =

TAGS="${TAGS}${item}"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top