shell格式化字符串

时间:2023-03-09 15:10:50
shell格式化字符串

假如你有以下代码:

 TEMP_SQL="SELECT count(uid) from ${TABLE_PREFIX}_%s;"

 SUM=
for((i=${MIN};i<${MAX};i++));
do
echo "${TABLE_PREFIX}_${i}"
SQL= ???
print ${SQL}
done

这个在我们写shell代码时是很常见的操作,上述代码的第7行,我希望以TEMP_SQL为模板将里面%s替换为for循环中i的值,该怎么操作呢?

答案:

 TEMP_SQL="SELECT count(uid) from ${TABLE_PREFIX}_%s;"

 SUM=
for((i=${MIN};i<${MAX};i++));
do
echo "${TABLE_PREFIX}_${i}"
SQL=$(printf "${TEMP_SQL}" ${i})
print ${SQL}
done