Bash에서 C++ 프로그램으로 배열을 보낼 수 있습니까?

Bash에서 C++ 프로그램으로 배열을 보낼 수 있습니까?

array_of_strings를 생성하여 매개변수 문자열 array_of_strings[]가 있는 C++ 프로그램으로 보내는 것이 가능한지 알고 싶습니다.

답변1

자일스의 대답정보의 90%가 귀하에게 제공되지만 bash는 나머지를 수행합니다.

$ arr=(foo bar 'Hello World!')
$ ./foo "${arr[@]}"

답변2

모든 프로그램은 문자열 배열을 인수로 받습니다. C++에서 인수는 함수 argv에 대한 인수 입니다 main. 배열의 첫 번째 요소는 프로그램 이름이고 다른 요소는 전달하는 인수입니다.

$ cat foo.cpp
#include <iostream>
int main (int argc, char *argv[]) {
    for (int i = 1; i < argc; i++)
        std::cout << argv[i] << std::endl;
    return 0;
}
$ g++ -o foo foo.cpp
$ ./foo hello world
hello
world

관련 정보