并行gnu通过shell脚本传递参数

Parallel gnu passing arguments in shell script

本文关键字:参数 脚本 shell gnu 通过 并行      更新时间:2023-10-16

我想将参数传递给shell脚本中的C 程序,该程序只将其打印到控制台。但是,我想使用平行的GNU进行操作。目前我有一个shell脚本

#!/bin/sh
parallel -k echo ::: 1 2 3 > cTest
parallel ./hello :::: cTest

我首先创建一个文件" ctest",其中包含将传递给可执行的" hello"的项目。

目前,上面只是打印空格。我尝试过,

parallel echo :::: cTest | ./hello

,但这只是打印" 2"(我也担心上述不会平行)。

有人知道如何工作吗?

这对我有用:

#!/bin/sh
cat <<EOF >hello.cpp
#include <iostream>
int main(int argc, char** argv) {
  std::cout << "Have " << argc << " arguments:" << std::endl;
  for (int i = 0; i < argc; ++i) {
    std::cout << argv[i] << std::endl;
  }
}
EOF
g++ hello.cpp -o hello
parallel -k echo ::: 1 2 3 > cTest
parallel ./hello :::: cTest