假如你有以下代碼:
1 TEMP_SQL="SELECT count(uid) from ${TABLE_PREFIX}_%s;" 2 3 SUM=0 4 for((i=${MIN};i<${MAX};i++)); 5 do 6 echo "${TABLE_PREFIX}_${i}" 7 SQL= ??? 8 print ${SQL} 9 done
這個在我們寫shell代碼時是很常見的操作,上述代碼的第7行,我希望以TEMP_SQL為模板將里面%s替換為for循環中i的值,該怎么操作呢?
答案:
1 TEMP_SQL="SELECT count(uid) from ${TABLE_PREFIX}_%s;" 2 3 SUM=0 4 for((i=${MIN};i<${MAX};i++)); 5 do 6 echo "${TABLE_PREFIX}_${i}" 7 SQL=$(printf "${TEMP_SQL}" ${i}) 8 print ${SQL} 9 done