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