O Nohup não funciona corretamente com o bash for loop

Sep 19 2020

Tenho tentado usar nohup com bash for loop e me deparei com este post aqui que foi útil e me deu uma ideia, mas meu comando ainda não está funcionando corretamente. O que eu tenho agora parece:

nohup sh -c 'for i in {0..9}; do spark-submit --class some.Code /some/Jar.jar --input_path /some/path/part-001"$i"* > test_log.log; done' &

quando eu executo isso, o trabalho falha, com a seguinte exceção de que o caminho de entrada não existe e me mostra o caminho como:

/some/path/part-001{0..9}*

Como posso substituir isso $ipelo valor real de i e não pela string {0..9}?

Respostas

2 KamilMaciorowski Sep 18 2020 at 23:17

O problema não tem nada a ver com nohup.

A expansão da cinta é um basismo . Seu código é executado she não se expande {0..9}. Use em bashvez de sh.

Se você ainda quiser usar sh, então for i in $(seq 0 9); do ….
(Quase sempre deve-se aspas duplas $(), mas neste caso não citar é a coisa certa).