for SCHEMA_ONLY_DB in ${SCHEMA_ONLY_LIST//,/} do SCHEMA_ONLY_CLAUSE="$SCHEMA_ONLY_CLAUSE or datname ~ '$SCHEMA_ONLY_DB'" done SCHEMA_ONLY_LIST="mydb1,mydb2,mydb3,mydb4" SCHEMA_ONLY_DB=mydb1
$SCHEMA_ONLY_CLAUSE现已填充:
echo $SCHEMA_ONLY_CLAUSE or datname ~ 'mydb1' or datname ~ 'mydb2' or datname ~ 'mydb3'
解决方法
${parameter/pattern/string}
Pattern substitution. The pattern is expanded to produce a pattern just as in pathname expansion. Parameter is expanded and the longest match of pattern against its value is replaced with string. If pattern begins with
/
,all matches of pattern are replaced with string. normally only the first match is replaced. If pattern begins with#
,it must match at the beginning of the expanded value of parameter. If pattern begins with%
,it must match at the end of the expanded value of parameter. If string is null,matches of pattern are deleted and the/
following pattern may be omitted. If parameter is@
or*
,the substitution operation is applied to each positional parameter in turn,and the expansion is the resultant list. If parameter is an array variable subscripted with@
or*
,the substitution operation is applied to each member of the array in turn,and the expansion is the resultant list.