Запуск программы C с неизвестным количеством аргументов - PullRequest
1 голос
/ 18 июня 2020

Например, если у меня есть программа, и я хочу запускать ее с каждым файлом .txt в текущем каталоге, но я хочу, чтобы они использовались одновременно

./program file1.txt file2.txt file3.txt ........... fileX.txt
#!/bin/bash

for filename in $(find -type f); do
    if [[ "$filename" == *".txt"* ]]; then
        ./program $filename
    fi
done

В настоящее время у меня есть что-то вроде этого, которое работает для каждого файла, но я не уверен, как я могу сделать это для всех файлов одной командой.

./program x y z 

за неизвестное количество

Спасибо!

1 Ответ

0 голосов
/ 18 июня 2020

Хорошо, вот несколько приемов, которые вы можете использовать, если это файлы с расширением .txt и они находятся в текущем месте / папке:

./program *.txt

подойдет.

Другое чем то, что у вас может быть следующее, как создать переменную, содержащую аргументы, и передать их в программу, например:

var="a b c";
./program $var;

вот мой небольшой код, с которым я его тестировал:

#include <stdio.h>

int main (int argc, char** argv) {
    for (int i = 0; i < argc; ++i) {
        printf("%s\n", *(argv+i));                     
    }   

    return 0;
}

и выдает:

a
b
c

Все эти примеры будут работать для некоторых других языков, а не только для C / C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...