Você pode chamar scripts shell a partir do aplicativo C usando system()
function:
system() executes a command specified in command by calling /bin/sh -c command, and returns after the command has been completed. During execution of the command, SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored.
Exemplo:
#include <stdlib.h>
int main(int argc, char *argv[]) {
char* command = "\
for i in 1 2 3 4 5;\
do echo \"$i\"; \
done";
system(command);
return 0;
}
Em exibição:
$ gcc test.c -o test
$ chmod 100 test
$ ./test
1
2
3
4
5
Lembre-se de que o argumento é uma string de comando, portanto, você precisa terminar as linhas com ponto e vírgula. Você também tem que escapar de aspas.