Com base no seu código existente, estou supondo que o arquivo .mac não existirá ou (se houver), você quer que ele seja sobrescrito.
#!/bin/sh
#########################################
## ${1} will be number of particles #####
#########################################
# If file already exists, delete it.
[ -f runPgun_${1}_new.mac ] && rm runPgun_${1}_new.mac
for PARTICLE in $(seq 1 $1); do
echo /gps/source/add $PARTICLE >> runPgun_${1}_new.mac
echo /gps/particle/neutron >> runPgun_${1}_new.mac
done
Não ficou claro para mim se o nêutron deve ser executado após cada adição, ou somente após todos os acréscimos. Se for executado apenas uma vez, mova o segundo eco para depois do done
.
Resultados:
~> ./MakeMacro.sh 5
~> cat runPgun_5_new.mac
/gps/source/add 1
/gps/particle/neutron
/gps/source/add 2
/gps/particle/neutron
/gps/source/add 3
/gps/particle/neutron
/gps/source/add 4
/gps/particle/neutron
/gps/source/add 5
/gps/particle/neutron