Portál AbcLinuxu, 9. května 2025 23:31
if [[ ! "$A" =~ "$B" ]] then echo "Error!" else echo "Success!" fiJenže potřebuji přesně opačné zpracování, odstraním tedy vykřičník
if [[ "$A" =~ "$B" ]] then echo "Success!" else echo "Error!" fiale podmínka vypíše vždy Error! Poradí prosím někdo? Děkuji
[[ '-->' =~ ^\-\-\>$ ]] [[ '-->' =~ ^--\>$ ]]A tohle vše nefunguje jak bys mohl čekat:
[[ '-->' =~ '^-->$' ]] [[ '-->' =~ '^\-\->$' ]] [[ '-->' =~ '^\-\-\>$' ]] [[ '-->' =~ '^--\>$' ]]Abych pravdu řekl, netuším proč a ničí mě to.
[[ "a" =~ a$ ]] ; echo $?
[[ "a$" =~ "a$" ]] ; echo $?
[[ "a$" =~ a"$" ]] ; echo $?
A todle False (1)
[[ "a$" =~ a$ ]] ; echo $?
[[ "a$" =~ "a"$ ]] ; echo $?
Jestli tomu tak je, tak je to ovšem zvěrstvo...
Nejhorsi je, ze to drive fungovalo (cca 5let), takze jsem musel prepisovat uz odladene scripty.
ted to obchazim konstrukci:
porovnatel="^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$" ;if [[ "$jmeno" =~ $porovnatel && ${BASH_REMATCH[1]} -lt 256 && ${BASH_REMATCH[2]} -lt 256 && ${BASH_REMATCH[3]} -lt 256 && ${BASH_REMATCH[4]} -lt 256 ]] then echo "je to ip" fi
Když změním $A, $B na $1, $2 tak to funguje...
if [ ! "${B/*$A*/}" ];then echo OK; else echo NOK; fi
if echo "$B" | grep -q "$A"; then ... else ... fi
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.