linux - example - nohup windows
¿Por qué no puedo usar Unix Nohup con Bash For-loop? (4)
Por ejemplo, esta línea falla:
$ nohup for i in mydir/*.fasta; do ./myscript.sh "$i"; done > output.txt&
-bash: syntax error near unexpected token `do
¿Cuál es la forma correcta de hacerlo?
Para mí, la solución de Jonathan no se redirige correctamente a output.txt. Este funciona mejor:
nohup bash -c ''for i in mydir/*.fasta; do ./myscript.sh "$i"; done'' > output.txt &
Porque ''nohup'' espera un comando de una sola palabra y sus argumentos, no una construcción de bucle de shell. Deberías usar:
nohup sh -c ''for i in mydir/*.fasta; do ./myscript.sh "$i"; done >output.txt'' &
Puedes hacerlo en una línea, pero es posible que también quieras hacerlo mañana.
$ cat loopy.sh
#!/bin/sh
# a line of text describing what this task does
for i in mydir/*.fast ; do
./myscript.sh "$i"
done > output.txt
$ chmod +x loopy.sh
$ nohup loopy.sh &
También podrías escribirlo como
for i in mydir/*.fasta; do nohup ./myscript.sh "$i" > output.txt; done &