0

我需要在 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
4

1 回答 1

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

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

${var#bs}扩展为去掉前缀的$varbs_

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

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

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

于 2013-10-12T21:47:56.953 回答