Question

Par exemple cette ligne échoue:

$ nohup for i in mydir/*.fasta; do ./myscript.sh "$i"; done > output.txt&
-bash: syntax error near unexpected token `do

Quelle est la bonne façon de le faire?

Était-ce utile?

La solution

Parce que « nohup » attend une commande unique mot et ses arguments - et non une construction en boucle shell. Il faudrait utiliser:

nohup sh -c 'for i in mydir/*.fasta; do ./myscript.sh "$i"; done >output.txt' &

Autres conseils

Vous pouvez le faire sur une seule ligne, mais vous voudrez peut-être de le faire demain aussi.

$ 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 &

Pour moi, la solution de Jonathan ne redirige pas correctement sortie.txt. Celui-ci fonctionne mieux:

nohup bash -c 'for i in mydir/*.fasta; do ./myscript.sh "$i"; done' > output.txt &

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top