2

我需要在 shell 脚本中运行多个并行屏幕(命令)会话,但似乎 GNU 并行现在正在使用屏幕参数。例如:

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

工作正常,并行将两个参数传递给 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 回答