Strona główna Ubuntu C++ Hardware HTML i javascript Java Software SQL

Awk|Bash – C++ automatyczne generowanie nowego pliku nagłówkowego i źródłowego.

Dodano: 2012-04-27

Generowanie określonej klasy języka C++ w postaci pliku nagłówkowego i źródłowego jest przydatne w czasie pisania pewnych rozwiązań programistycznych tylko za pomocą terminala (zdalnie) bez możliwości skorzystania z rozbudowanego środowiska programistycznego.

Przykład poniższy został stworzony celu utworzenia szybko klasy (*.h, *.cpp), której nazwę zdefiniuje użytkownik. W czasie uruchamiania należy podać jako parametr nazwę klasy, która ma być stworzona.

W przypadku częstego generowania klas z terminala warto utworzyć alias do skryptu.

Przykład poniżej:

drukowanie kodu zaznaczanie kodu

#!/bin/bash

echo The script that creates the header file (*.h) and source (*.cpp).

if [ "$1" = "" ]; then
	echo "Paramaters not exist!!!";
	exit 1;
fi


if [ -f $1".h" ] || [ -f $1".cpp" ]; then
	echo "File exist!!! Overwrite? [yes]";
	read option;
	if [ "$option" != "yes" ]; then
		exit 0;
	fi
fi


awk -vn=$1 'BEGIN{
	hN = n".h";
	print "Creating header: "n".h ...";
	print "#pragma once \n" > hN;
	print "class "n" {" > hN;
	print "public:" > hN;
	print "	"n"();" > hN;
	print "	~"n"();" > hN;
	print "};" >> hN;

	cN = n".cpp";
	print "Creating file implementation: "n".cpp ...";
	print "#include \""n".h\"\n" > cN;
	print n"::"n"(){" >> cN;
	print "}\n" >> cN;
	print n"::~"n"(){" >> cN;
	print "}" >> cN;
}'


exit 0;