2016-12-03 73 views
1

我想將一個參數傳遞給一個shell腳本中的C++程序,該腳本將它打印到控制檯。但是,我想用gnu並行來做到這一點。目前,我有一個shell腳本,並行gnu在shell腳本中傳遞參數

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

在這裏我先創建一個文件「CTEST」包含將被傳遞給可執行文件「你好」的項目。

目前,上面只是打印空白處。我試過,

parallel echo :::: cTest | ./hello 

但這只是打印'2'(我也擔心上述不會並行)。

有誰知道如何得到這個工作?

+0

你是做正確的事,所以讓我們先排除,有什麼不對您的安裝。 https://www.gnu.org/software/parallel/parallel_tutorial.html是否按預期工作? –

+0

所有工作都很好 - 在開始之前,我通過部分教程瀏覽了部分教程。 – ben18785

回答

1

這個工作對我來說:

#!/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