У меня есть скрипт bash, который используется в CGI. CGI устанавливает переменную среды $QUERY_STRING
, читая все, что находится после URL-адреса ?
. Например, http://example.com?a=123&b=456&c=ok устанавливает QUERY_STRING=a=123&b=456&c=ok
.
Где-то я обнаружил следующее безобразие:
b=$(echo "$QUERY_STRING" | sed -n 's/^.*b=\([^&]*\).*$/\1/p' | sed "s/%20/ /g")
который установит $ b к тому, что было найдено в $ QUERY_STRING для b
. Однако мой сценарий вырос до десяти входных параметров. Есть ли более простой способ автоматического преобразования параметров в $ QUERY_STRING в переменные среды, используемые bash?
Возможно, я просто использую цикл for некоторого вида, но было бы еще лучше, если бы скрипт был достаточно умен, чтобы автоматически определять каждый параметр и, возможно, создать массив, который выглядит примерно так:
${parm[a]}=123
${parm[b]}=456
${parm[c]}=ok
Как я мог написать код для этого?