Почему я не могу использовать Unix Nohup с Bash Для цикла?

Например, эта строка сбои:

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

Что правильный путь состоит в том, чтобы сделать это?

30
задан neversaint 23 June 2010 в 05:21
поделиться

2 ответа

Потому что nohup ожидает однословную команду и ее аргументы, а не конструкцию цикла оболочки. Вам придется использовать:

nohup sh -c 'for i in mydir/*.fasta; do ./myscript.sh "$i"; done >output.txt' &
73
ответ дан 27 November 2019 в 23:13
поделиться

Вы можете сделать это на одной строке, но, возможно, вам захочется сделать это и завтра.

$ 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 &
9
ответ дан 27 November 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: