Portál AbcLinuxu, 10. května 2025 05:30
Ahoj,
jak mam prosim otestovat numerickou navratovou hodnotu funkce v Bashi?
Google nasel tohle, ale to je myslim posouzeni jako retezec, ne cislo:
if [[ "$(func arg)" != "0" ]]
Pro cisla bych si predstavoval:
if (( $(func arg) != 0 ))
ale to skonci chybou.
S promennou to normalne funguje:
if (( $var != 0 ))
Diky
Řešení dotazu:
if [[ "$?" != "0" ]]; then exit 1 finebo jako číslo:
if [[ $? -ne 0 ]]; then exit 1 fi
man test
, i když zde to je built-in test
v Bashu.
Ano diky, to funguje a funguje to v ruznych kombinacich, asi proto, ze Bash zna jenom string
fce "10"
if [[ $? -eq "10" ]]
fce 10
if [[ $? -eq "10" ]]
fce "10"
if (( $? == 10 ))
fce 10
if (( $? == 10 ))
Funkce mi vrati:
return 10
a to jsem potom otestoval v podmince a vsechny 4 vratily spravy vysledek
[[ "$?" == "10" ]]
.
if func args; then ... fi?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.