How to call a C program in shell script?

2020-02-05 11:08发布

问题:

I have a simple question. I want to execute a C program in a shell script. How do I do that? Thanks for your help in advance.

回答1:

Assuming this is linux/unix we're talking about:

#!/bin/sh
/path/to/executable arg1 arg2


回答2:

cc hello_world.c #produces a.out
./a.out #run your program

IMHO, your problem is the $PATH. Your current directory is not in PATH, so when you enter

a.out

your shell respond:

-bash: a.out: command not found

you should execute it as

./a.out

(or add "." to your PATH, but this is not recommended.)



回答3:

Almost every program that you execute in a shell script is a C program (but some, often many, of the commands you execute may be built into the shell). You execute a C program in the same way as any other program:

  • By basename: command [arg1 ...]
    • The command must be in a directory searched by the shell - on your PATH, in other words.
  • By relative name: ./command [arg1 ...] or ../../bin/command [arg1 ...]
    • The program must exist and be executable (by you)
  • By absolute name: /some/directory/bin/command [arg1 ...]
    • The program must exist and be executable (by you)

One of the beauties of Unix is that programs you create, whether in C or any other language, attain the same status as the system-provided commands. The only difference is that the system-provided commands are in a different place (such as /bin or /usr/bin) from commands you create (such as usr/local/bin or $HOME/bin).



标签: shell