Não faz sentido colocar todos os comandos no único loop for
, no seu caso. Você não tem ações comuns para todos os arquivos - cada extensão possui comandos próprios e eles não interceptam. Assim, você precisará usar if
ou switch
para distinguir uma extensão da outra. Por que isso? Será mais fácil criar um loop personalizado para cada extensão.
Eu decidi não passar extensões para o script, mas escrevê-las diretamente no código. Além disso, escolhi printf
- é mais adequado para esta tarefa.
Uso: ./my_script.sh > ps_files.txt
#!/bin/bash
for i in *.zap; do
printf 'psrplot -D "%s_bp.ps/cps" -p freq+ "%s"\n' "$i" "$i"
done
for i in *.T; do
printf 'pav -g "%s_fprof.ps/cps" -Gd "%s"\n' "$i" "$i"
printf 'pav -g "%s_ds.ps/cps" -j "%s"\n' "$i" "$i"
done
for i in *.F; do
printf 'pav -g "%s_avprof.ps/cps" -DT "%s"\n' "$i" "$i"
printf 'pav -g "%s_stack.ps/cps" -R "%s"\n' "$i" "$i"
done
Teste
Eu criei seis arquivos:
$ ls -1
1.F
1.T
1.zap
2.F
2.T
2.zap
Resultado
# run my script
$ ./my_script.sh > ps_files.txt
# and look at the ps_files.txt content
$ cat ps_files.txt
psrplot -D "1.zap_bp.ps/cps" -p freq+ "1.zap"
psrplot -D "2.zap_bp.ps/cps" -p freq+ "2.zap"
pav -g "1.T_fprof.ps/cps" -Gd "1.T"
pav -g "1.T_ds.ps/cps" -j "1.T"
pav -g "2.T_fprof.ps/cps" -Gd "2.T"
pav -g "2.T_ds.ps/cps" -j "2.T"
pav -g "1.F_avprof.ps/cps" -DT "1.F"
pav -g "1.F_stack.ps/cps" -R "1.F"
pav -g "2.F_avprof.ps/cps" -DT "2.F"
pav -g "2.F_stack.ps/cps" -R "2.F"