This projects supplies both the c++script utility and a library. The library provides means to do many tasks normally done in shell script using ranges and views (appeared in C++ 20). The utility allows you to create scripts, written in C++. You simply write a script file by entering the following line #!/usr/bin/c++script Then you enter normal C++ code as if you were already inside the main function. An hello world script looks like this #!/usr/bin/c++script cout << "hello world" The following script prints the C++ files in a directory #!/usr/bin/c++script for (auto f:DIRNAME(".").ls | views::match("*.cc") | DIRNAME::stat()){ println ("File {} size {}\n",f.name,f.size); } Special variables: args[] is a std::vector containing the command line argument, without the program name itself. envs is a const std::map containing all environnent variables cout << envs["PATH"] << "\n" is equivalent to echo $PATH