获取bash中的所有变量并转换为url查询字符串

时间:2013-10-12 21:09:29

标签: php bash shell

我需要在bash脚本中设置所有变量并将其转换为查询字符串。我需要做的是将在bash脚本中创建的所有变量传递给php文件。变量有时会设置,有时不如它们的数量很多。

#!/bin/bash

id=19
url="http://domain.com"
#this var should be generated 
query='id=19&url=http://domain.com'
php /srv/install-post.php -- $query

1 个答案:

答案 0 :(得分:1)

query=
for var in ${!bs_*}; do
    if [ -n "$query" ];
    then query="$query&"
    fi
    query="$query${var#bs_}=${!var}"
done

${!bs_*}扩展为以bs_开头的所有变量列表。

${var#bs}扩展为$var的值,删除了bs_前缀。

${!var}是变量间接 - $var被视为变量的名称,这将获得具有该名称的变量的值。

您可以在bash手册页的参数展开部分找到所有这些结构。

请注意,这不会尝试处理URL中需要百分比编码的值中的特殊字符。