Jeremy Banks postou um dos mais incríveis truques Eu já vi em algum tempo no SO. Basicamente, ele está adicionando uma única linha Bash-Script na parte superior do arquivo cpp , que permite a ele diretamente compilar e executar esse arquivo .
//&>/dev/null;x="${0%.*}";[ ! "$x" -ot "$0" ]||(rm -f "$x";cc -o "$x" "$0")&&exec "$x" "$@"
Esta explicação é copiada da essência:
//
Since we don't want this visible in C, we put it in a comment.
&>/dev/null
Unfortunately
//
is interpreted as an invalid shell command and produces an error message, so we need to redirect that to/dev/null
to get rid of it.;x="${0%.*}"
This determines what our compiled filename will be by using string replacement to get rid of any extensions on the current filename.
;[ ! "$x" -ot "$0" ]||
This check if there already is a compiled version newer than the source file. If not...
(rm -f "$x";cc -o "$x" "$0")
...we delete any existing version and then compile our code, using our chosen compiled filename.
&&exec "$x" "$@"
If the compile was successful or unnecessary, pass execution to the compiled code, passing on the arguments given to this script.
Esta técnica é chamada de um Polyglot , o que significa que está escrito em vários idiomas e também pode ser interpretado por esses intérpretes de linguagem sem problemas.