我需要在shell脚本中运行几个并行的屏幕(命令)会话,但似乎GNU parallel现在正在使用屏幕参数。例如:
#!/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”参数之前的 - 被删除了。也许我错过了一些明显的东西?
答案 0 :(得分: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