######################################## 脚本 ######################################## C++ 的脚本化: 自动编译和运行程序 **************************************** 原文出自这里: `神奇,C代码竟然能当成shell脚本一样“直接”执行! `_ 但是很可惜,作者虽然很有探索精神,但是由于细节不到位,导致后来的代码冗余很多。 比如 shell 脚本第一行开头并没有严格的规定,写一个 "#!"只是为了指定解释器,而大部分linux发行版都是默认 bash 的。 这意味这脚本是从上向下执行的。使用绝对路径定位时,连续的 "//" 是被看作一个的,也就是说 "/usr/bin/bash" 和 "//usr/bin/bash" 是相同的 而第二种形式正是 C++ 的行注释 如此,得到: .. code-block:: cpp //usr/bin/gcc -o main "$0" && ./main &&exit #include int main(){ printf("hello, world"); return 0; } 命令如果不放到一行的话,每一行都需要指定路径: .. code-block:: cpp //usr/bin/gcc -o main "$0" //`pwd`/main && exit #include int main(){ printf("hello, world"); return 0; } 由于 exit 是 bash 的内建命令,因此只能和带路径的命令放在同一行