bash - 如何使用 screen session 参数并行运行 GNU?

标签 bash shell parallel-processing gnu-screen gnu-parallel

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

#!/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”参数之前的 - 被删除了。也许我遗漏了任何明显的东西?

最佳答案

并行将字符串 "-d -m -S t1 bash -c 'echo hi 2>&1 | tee hi.txt'" 作为单个参数传递给 screen.因此,参数不会被分割成单词,而且它看起来像是一个以 -d 开头的非常长的选项, screen 无法理解。

我认为你想做这样的事情,尽管我还没有测试过它或任何东西:

parallel --gnu "screen -d -m -S t1 bash -c 'echo {} 2>&1 | tee {}.txt'" ::: hi bye

关于bash - 如何使用 screen session 参数并行运行 GNU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16996661/

相关文章:

c - 使用 openmp 并行化

multithreading - C++ 11 中宽松内存模型的底层机制是什么?

c - 通过 Bash 脚本在 C 文件中查找 "main"函数名称

bash - 使用 perl 就地替换将软链接(soft link)/符号链接(symbolic link)更改为静态文件

Linux 不使用 ECHO 命令将字符串保存到文件

linux - 获取当前日期并将其用于文件名

linux - 在 gnuplot 中定义 xrange 时如何使用变量?

linux - 这个 bash 脚本有多危险?

python - 如何按照Unix Shell或任何其他配置文件中提到的位置添加空值

c - CUDA 上的定时内核执行