Operations 3 min read

Compile C Code On‑the‑Fly Using a Shell Here Document

This article explains how to use the shell's Here Document feature to embed C source code directly in a script, pipe it to gcc with appropriate flags, and instantly compile and run a hello‑world executable without separate source files.

Liangxu Linux
Liangxu Linux
Liangxu Linux
Compile C Code On‑the‑Fly Using a Shell Here Document

A friend shared an intriguing shell snippet that demonstrates the use of a Here Document to embed C source code within a script and compile it on the fly.

A Here Document is a special redirection in shell scripting where <<EOF starts a block and the line containing EOF ends it; everything in between is fed as standard input to the preceding command.

In the example, the command gcc -x c -o hello - << EOF tells gcc that the incoming data is C source ( -x c) and that the output executable should be named hello ( -o hello).

The overall effect is that the shell passes the C code between the EOF markers to gcc, which compiles it and produces an executable that can be run immediately.

echo $1
output=$1
gcc -x c -o $output - << EOF
#include <stdio.h>
int main()
{
    printf("hello world!
");
    return 0;
}
EOF

./$output

Running the script produces the expected output hello world!, demonstrating a compact way to compile and execute C code without creating separate source files.

scriptingGCCC Compilerhere-document
Liangxu Linux
Written by

Liangxu Linux

Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.