Każdy skrypt potrzebuje jakieś funkcji opisującej działanie skryptu. Przeważnie umieszczamy w niej dużo echo aby wyświetlić linie z informacjami. Jest jednak inna możliwość, użycie cat i EOF (albo innego znacznika, ważne ze określa początek i koniec tekstu, zwyczajowo jest to EOF – End Of File). Przykład:
function usage() {
cat << EOF
usage: $0 options
description of option 1 - default: $DEFAULT1
It is nice way to create easy long description...
EOF
}
W jednym z poprzednich wpisów pokazałem metodę analizy podanych parametrów przez analizę kolejnych wartości zmiennych $1 itd.
Teraz przyjrzymy się kolejnej metodzie, korzystającej z wbudowanej w Basha funkcji getopts.
Czytaj dalej Bash – pobieranie opcji z linii poleceń, wersja 2 czyli getopts →
W zmiennej RANDOM Bash trzyma zmienną z zakresu 0-32767:
$echo $RANDOM
17152
$ echo $RANDOM
15361
Jeżeli chcemy uzyskać wartość z zakresu 0 jakaś liczba, np. 100, musimy zastosować drobne sztuczki:
$ let R=$RANDOM%100; echo $R
90
$ let R=$RANDOM%100; echo $R
16
Jeżeli natomiast chcemy liczbę z zakresu np. 20 – 120 musimy wylosować liczbę z z zakresu 0-100 i dodać do niej dolną granicę czyli 20:
$ let R=$RANDOM%100+20; echo $R
98
$ let R=$RANDOM%100+20; echo $R
117
W przypadku powłowki nie możemy po prostu napisać 1+1 gdyż powłoka potraktuje to jako napis:
$ echo 1+1
1+1
Niezależnie czy użyjemy spacji czy nie:
$ echo 1 + 1
1 + 1
Natomiast w tym przypadku należy skorzystać z polecenia expr:
$ echo `expr 1 + 1`
2
Należy jednak pamietać o spacjach ;):
$ echo `expr 1+1`
1+1
Myślałem że coś tam wiem o używaniu Basha, niestety (a raczej stety 😉 ), przyjaciel z pracy pokazał mi dzisiaj jak mało umiem ;). Problem do rozwiązania był prosty: należało sprawdzić adresy IP 20 serwerów. Stwierdziłem, że pisanie skryptu zajmie więcej czasu niż ręczne sprawdzenie ich przy pomocy komendy 'host’. Cóż, rozwiązanie okazało się proste.
Czytaj dalej Linux – Bash – skryptowanie w linii poleceń – cz 1. →
Uruchomiłem sobie dla mojej witryny svn-a oraz postanowiłem przerzucić sie z testowania wszystkiego na lokalnym WWW (lapek) na domenę zewnętrzną. Skonfigurowałem sobie skrypt do automatycznego kopiowania danych z svn-a do poddomeny i pojawił się problem. Otóż o ile pobieranie danych z zewnętrznego svn-a (z moim własnym, małym frameworkiem bazodanowym) przez ssh na własnym lapku jest proste, to korzystanie z zewnętrznego skryptu na hostingu może być problematyczne. Musiałem udostępnić anonimowy dostęp przez WWW.
Zapamiętać: ssh nadaje się na synchronizację na domowe komputery, należy jednak udostępniać dla niektórych projektów anonimowe dostępy przez WWW…
Kolejnym z etapów poznawania SVN-a jest określenie, że niektóre katalogi, podkatalogi lub pliki w katalogu repozytirum należy ignorować. Na przykład mamy sytuacje, że w cache tworzą się nam pliki i svn marudzi:
Czytaj dalej SVN: ignorowanie elementów, np. katalogów →
Coraz bradziej się cieszę, ze zmiany hostingu. Nowy hosting umożliwia mi automatyczne publikowanie zmian wprowadzonych do repozytorium svn. Działa to prosto: wprowadzam poprawki do repozytorium, a skrypt hostingu (po odpowiednim, acz banalnym konfigurowaniu) automatycznie robi commit na katalog serwisu WWW. Dzięki temu nie muszę wykonywać ręcznego kopiowania kodu strony. Jednen ruch mniej myszką a jak cieszy (albo jeden skrypt mniej…).
Jeżeli ktoś chciałby wykupić hosting może także wspomóc mnie 😉 Link do mojego konta w programie partnerskim.
Mając doświadczenia z kilku hostingów (jak np. home.pl) postanowiłem spisywać przemyślenia dotyczące idealnego hostingu. Ma to na celu pomóc mi w przyszłości otworzyć własny hosting ;). Co prawda wątpie by było to główne źródło zarobku ale może działać jako dobry sposób promocji głównej działalności. Przynajmniej taką mam nadzieje.
Kolejna witryna WordPress