bash bei '=~' mit '^' kaputt?

09/06/2008 - 21:13 von Dirk Clemens | Report spam
Wollte nur was schnell runtertippen

# bash --version
GNU bash, version 3.2.25(1)-release (x86_64-suse-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.

# a="12"; [[ $a =~ "1" ]] && echo OK || echo fail
OK

# a="12"; [[ $a =~ "^1" ]] && echo OK || echo fail
fail

# a="`echo -e "12"`"; [[ $a =~ "^1" ]] && echo OK || echo fail
fail

# echo "$a" | od -tx1
0000000 0a 31 32 0a
0000004

man bash
$ ...
$ An additional binary operator, =~, is available, with the
$ same precedence as == and !=. When it is used, the
$ string to the right of the operator is considered an
$ extended regular expression and matched accordingly (as
$ in regex(3)).
$ ...

man 3 regex
$ ...
$ Match-beginning-of-line operator (^) matches the empty
$ string immediately after a newline,
$ ...

Erkennt der Operator =~ kein '^'?
Mach ich was falsch?
 

Lesen sie die antworten

#1 Sascha Hüdepohl
09/06/2008 - 21:36 | Warnen spam
Dirk Clemens schrieb:

Erkennt der Operator =~ kein '^'?
Mach ich was falsch?



Ich kann Dir zwar nicht helfen, aber mir ist das auch schon aufgefallen.
Ein Skript in dem ich =~ '^...' verwende funktioniert nicht mehr.

Ähnliche fragen