Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Amanda_Stramanda 17. 08. 2018, 11:03:09

Název: Konflikt flagy set -u s kontrolou, zda byl definován parametr
Přispěvatel: Amanda_Stramanda 17. 08. 2018, 11:03:09
Hoj,

narazil jsem na takový problém při psaní bash skriptu.

Mám nastavenou flag:

Kód: [Vybrat]
# Exit on use of undeclared variable.
set -u

která funguje hezky. Problém je, když kontroluju např. ve funkci jestli byly předány argumenty.

Kód: [Vybrat]
if [ -z "$2" ]; then
....

No a problém je ten že když $2 skutečně nebyl předán tak se ta podmínka vůbec nevykoná, namísto skript skončí, jelikož undeclared variable.

Dá se toto nějak zkloubit?

Díkyy :))
Název: Re:Konflikt flagy set -u s kontrolou, zda byl definován parametr
Přispěvatel: AoK 17. 08. 2018, 11:59:18
lze přes syntaxi v bashi doplnit výchozí prázdnou hodnotu, tím to funguej s set -u
Kód: [Vybrat]
if [ -z "${2:-}" ]; then

nebo si budeš kontrolovat nikoliv inicializaci konkrétního argumentu, ale jejich počet
Kód: [Vybrat]
if [ $# -gte 2 ]; then