O que você está fazendo deve funcionar. Se você puder fazer:
$ KMMX.csh
então o GNU Parallel também deve ser capaz de rodar o script. A primeira etapa de depuração é executar parallel
com --dry-run
, que informará o que está sendo executado:
cat run.txt | parallel --dry-run
Existem, no entanto, várias coisas na sua pergunta que me intrigam:
- O título da pergunta menciona
bash
, mas você chama seus scripts *.csh
Seu shell interativo é bash
, mas os scripts csh
-files?
- Você não mencionou que colocou os arquivos em um diretório em
$PATH
, mas não se refere aos scripts com caminho (por exemplo, ./KMMX.csh
). Isso poderia explicar por que isso não funciona. Embora você deva receber uma mensagem de erro.
- Você não menciona que tem
chmod +x
dos arquivos. Isso poderia explicar por que isso não funciona. Embora você deva receber uma mensagem de erro.
Mas acima de tudo eu me preocupo que você esteja fazendo isso mais difícil consigo mesmo do que precisa ser. O GNU Parallel é projetado para criar comandos a partir de um modelo, e parece que seus *.csh
-files também são construídos a partir de um modelo com a única alteração sendo o nome do dado.
Meu palpite é que você pode alterar sua configuração para:
$ parallel doit {} ::: KQPW KMMX KMKO KZAO
onde doit
é um script / função que usa o nome do dado como um argumento.
Recomendamos que você assista aos vídeos introdutórios para uma introdução rápida: link Depois, veja os EXEMPLOS depois da lista de OPÇÕES (Use LESS = + / EXAMPLE: man parallel). Isso lhe dará uma idéia do que o GNU parallel é capaz de fazer. Depois passe algumas horas percorrendo o tutorial (man parallel_tutorial).
Sua linha de comando vai amar você por isso.