我需要在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
答案 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中需要百分比编码的值中的特殊字符。