Tom Hale
Tom Hale

Reputation: 46775

Shortest non-null bash quine

The shortest bash quine is the null string:

$ bash -c ''
$ 

What is the shortest non-null bash script which produces its own source code as output?

Upvotes: 2

Views: 2324

Answers (4)

Ezlanding
Ezlanding

Reputation: 101

18 Character Bash Quine

history|tail -c18

Note: this is a cheating quine (like "$BASH_COMMAND") because it inspects its own source code. It uses history to read in the bash history from RAM then grabs the last 18 characters

echo 'history|tail -c18' > quine
$ wc -c quine
18 quine

Upvotes: 0

mrmtonio
mrmtonio

Reputation: 33

I think I just stumbled on a bash quine, which may be the shortest non-empty one, though cheating a little bit:

you write a file like this:

#!/bin/cat

do chmod a+x on the file

then do ./file

the output will produce the contents of the file itself lol

Upvotes: 0

grand central
grand central

Reputation: 49

I feel like:

cat $0

should work but they dont accept it

Upvotes: 0

Tom Hale
Tom Hale

Reputation: 46775

19 characters:

$echo 'echo $BASH_COMMAND' > quine
$ wc -c quine
19 quine
$ cat quine
echo $BASH_COMMAND
$ bash quine
echo $BASH_COMMAND
$

The character count includes the newline in the source (because it is produced in the output).


If you've not heard of $BASH_COMMAND before, the manual says:

BASH_COMMAND

The command currently being executed or about to be executed, unless the shell is executing a command as the result of a trap, in which case it is the command executing at the time of the trap.

Upvotes: 7

Related Questions