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'

上記のエラーが発生します。

ただし、実際のコマンド「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*}qtrim -mode 2; done | at now 

しかし、ジョブの進行状況を確認することはできず、まだ実行中かどうかもわかりません。

誰でも私に何か提案をしてもらえますか? 以外の別のコマンドを使用する必要がありnohupますか?

4

1 に答える 1

1

あなたが使用することができます:

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

また、nohup を使用してシェル スクリプトを実行しない理由:

nohup <your script>
于 2012-12-28T21:00:54.317 に答える