2

シェル スクリプトで複数のスクリーン (コマンド) セッションを並行して実行する必要がありますが、GNU パラレルがスクリーン引数で動作しているようです。例えば:

#!/bin/sh
parallel --gnu date ::: "-R" "-u"

正常に動作しているため、parallel は両方の引数を date コマンドに渡します。しかし:

#!/bin/sh
parallel --gnu screen ::: "-d -m -S t1 bash -c 'echo hi 2>&1 | tee hi.txt'" "-d -m -S t2 bash -c 'echo bye 2>&1 | tee bye.txt'"

両方のコマンドを教えてくれます

Error: Unknown option d -m -S t1 bash -c 'echo hi 2>&1 | tee hi.txt'
Use: screen [-opts] [cmd [args]]

よく見ると、「d」引数の前の - が削除されています。多分私は明らかなものを見逃していますか?

4

1 に答える 1

3

parallel は、文字列"-d -m -S t1 bash -c 'echo hi 2>&1 | tee hi.txt'"を単一の引数として に渡していますscreen-dそのため、引数は単語に分割されておらず、画面が理解できない で始まる非常に長いオプションのように見えます。

私はそれなどをテストしていませんが、あなたはこのようなことをしたいと思います:

parallel --gnu "screen -d -m -S t1 bash -c 'echo {} 2>&1 | tee {}.txt'" ::: hi bye
于 2013-06-08T07:03:43.190 に答える