たとえば、次の行は失敗します。
$ Nohup for i in mydir/*.fasta; do ./myscript.sh "$i"; done > output.txt&
-bash: syntax error near unexpected token `do
それを行う正しい方法は何ですか?
「Nohup」は、Shellループ構成ではなく、単一のWordコマンドとその引数を想定しているためです。あなたが使用する必要があります:
Nohup sh -c 'for i in mydir/*.fasta; do ./myscript.sh "$i"; done >output.txt' &
1行で実行できますが、明日も実行することができます。
$ 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 &
私にとって、Jonathanのソリューションはoutput.txtに正しくリダイレクトされません。これはうまくいきます:
Nohup bash -c 'for i in mydir/*.fasta; do ./myscript.sh "$i"; done' > output.txt &