Aktywne Wpisy

gonzo91 +82
#gielda
OKI oficjalnie ograniczone do GPW. Szykuje się gigapompa.
OKI oficjalnie ograniczone do GPW. Szykuje się gigapompa.
źródło: temp_file5637701514831927187
Pobierz
Lolenson1888 +21
Uwaga konkurs
Kupię dowolny, wybrany prezent na Mikołaja każdej osobie, która poda mi jakąś zaletę Minety Rajovicia (oprócz wysokiego wzrostu)
#mecz
Kupię dowolny, wybrany prezent na Mikołaja każdej osobie, która poda mi jakąś zaletę Minety Rajovicia (oprócz wysokiego wzrostu)
#mecz
źródło: 416dfff53e18b9d3eec9d369076a71cd31fa9c9e7bcee53db0990c11fb192167
Pobierz




[ -n "${zmienna-}" ]Użycie znaku minusa sprawia, że skrypt poprawnie działa z pożyteczną flagą -u, ponieważ jest to składnia, która automatycznie podkłada alternatywą wartość bez nadpisywania zmiennej. Tą alternatywną wartością w przypadku niezdefiniowania zmiennej jest pusty string.
Co pewien czas będę wrzucać jakieś ciekawostki 😇
set -eui ew pipefail - ładnie wyjaśnione z przykładami tu https://gist.github.com/mohanpedala/1e2ff5661761d3abd0385e8223e16425 - ale co kto lubi. Różnych powłok przecież też sporo, nie każdy musi chcieć zostawać przy domyślnym bashu.Ogólnie zauważyłem że z bashem jest podobnie jak z makefile - jeśli skrypt zaczyna tyć powyżej N linii, lub robi się zbyt skomplikowany, to znak że lepiej się nada do tego
@Oo-oO: No właśnie o to chodzi, że zmienna nie zawsze musi być zdefiniowana. Chociażby możesz chcieć sprawdzić zmienną środowiskową, która może być, ale nie musi być ustawiona. W takiej sytuacji -eu wywala skrypt, a ja, jako, że lubię perwersję w programowaniu to pokazałem, jak sprawdzić istnienie zmiennej, w sposób właśnie poprawny również dla skryptu na flagach -eu.
declare -p foodziała nawet jak zmienna został choćby zdefiniowane a nie zadeklarowane 😏 albodeclare -Fp foodo sprawdzania czy funkcje są zdefiniowane.@PortowySzczur: jeżeli chcesz od razu exit, to masz rozwiązanie lepsze:
set -u[ -n "${zmienna}" ]
Moje:
set -u[ -n "${imie}" ] &&
sh[ -z "$imie" ] && echo "missing imię" && exit 1
[ -z "$nazwisko" ] && echo "missing surname" && exit 1
[ -z "$wiek" ] && echo "missing wiek" && exit