To ze skryptu bash Kiedyś zbudować program:c makefile z poleceń powłoki i zmiennych
dateString=$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h
echo "#define VERSION_REVISION \"$revision\"" >> version.h
I zmienia się z użyciem build.sh do makefile:
version.h:
dateString=$$(date +%Y/%m/%d\ %H:%M:%S)
revision=(`svn info | grep Revision | tr -d [:alpha:]':'`)
echo "#define VERSION_DATE \"$dateString\"" > version.h.tmp
echo "#define VERSION_REVISION \"$revision\"" >> version.h.tmp
mv version.h.tmp version.h
But plik version.h kończy się w ten sposób:
#define VERSION_DATE "\ateString"
#define VERSION_REVISION "\evision"
Nie mogę poprawnie odczytać zmiennych powłoki. Myślę, że to dlatego, że w końcu są one varsami Makefile. Jeśli ktoś wie, jak to zrobić, nie miałbym pojęcia, jak to zrobić. Wielkie dzięki.
Doskonale, że wykonała zadanie, dzięki kupo. Dziękuję również Paulowi za odpowiedź. –
Należy pamiętać, że ta wersja skryptu nie jest "międzynarodowa". Na przykład w języku francuskim powinieneś użyć polecenia "Révision" (zwróć uwagę na akcent). – Gui13
Jeśli masz plik wykonywalny 'svnversion', możesz bezpośrednio zamienić swoje długie' svn info | grep ... "przez to. Daje ci bezpośrednio wersję. – Gui13