1

我正在尝试对当前目录中以 .fastq 结尾的所有文件运行 Python 脚本 (qTrimHIV.py)。我想nohup在开头追加,以便它从一个命令中执行所有文件,无论我是关闭终端还是注销。

个人命令:

for x in $(find . -name '*fastq'); do echo $x; python ../qTrimHIV.py -verbose -fastq $x -l 23 -m 20 -w 23 -o ${x%.fastq*}tr -mode 2; done

效果很好。但是当我把 nohup 放在批处理命令前面时:

nohup for x in $(find . -name '*fastq') ; do echo $x; python ../qTrimHIV.py -verbose -fastq $x -l 23 -m 20 -w 23 -o ${x%.fastq*}tr -mode 2; done
-bash: syntax error near unexpected token `do'

我得到上面的错误。

但是,如果我将 nohup 放在实际命令“python ../qTrimHIV.py”之前效果很好,但这并不是我真正想要的,因为我想一次提交所有文件的任务并让它运行直到完成,无需保持登录。

我试过了

for x in $(find . -name '*fastq') ; do echo $x; python ../qTrimHIV.py -verbose -fastq $x -l 23 -m 20 -w 23 -o ${x%.fastq*}qtrim -mode 2; done | at now 

但它并没有让我看到工作的进度,而且我不知道它是否还在运行。

谁能给我任何建议?我应该使用不同的命令nohup吗?

4

1 回答 1

1

您可以使用:

nohup bash -c 'your command, everything including for'

另外,为什么不使用 nohup 运行 shell 脚本:

nohup <your script>
于 2012-12-28T21:00:54.317 回答