Reputation: 46775
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
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
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
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