Используйте форматированный вывод с sprintf
и двойными кавычками:
do for [i=1:7] {
plot for [IDX=0:4] sprintf("run-1/%d.t-0.dat", np[i]) ...
Или вы можете использовать массив строк:
np = "8 12 16 20 24 28 32"
do for [i=1:7] {
plot for [IDX=0:4] sprintf("run-1/%s.t-0.dat", word(np, i)) ...