Fórum Root.cz

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

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

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

Mám nastavenou flag:

# 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.

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: Exceptions kdy 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

if [ -z "${2:-}" ]; then


nebo si budeš kontrolovat nikoliv inicializaci konkrétního argumentu, ale jejich počet

if [ $# -gte 2 ]; then