On Thu, Mar 10, 2011 at 10:22 AM, Jerry Wang < jerry.j.w...@alcatel-lucent.com> wrote:
> Configuration Information [Automatically generated, do not change]: > Machine: i486 > OS: linux-gnu > Compiler: gcc > Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i486' > -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i486-pc-linux-gnu' > -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' > -DSHELL -DHAVE_CONFIG_H -I. -I../bash -I../bash/include -I../bash/lib > -g -O2 -Wall > uname output: Linux Xubuntu 2.6.31-22-generic #73-Ubuntu SMP Fri Feb 11 > 17:36:01 UTC 2011 i686 GNU/Linux > Machine Type: i486-pc-linux-gnu > > Bash Version: 4.0 > Patch Level: 33 > Release Status: release > > Description: > The case modification won't work with pattern. > I have a simple script a.sh, please see below: > > #! /bin/bash > var="abcabc" > echo "var: ${var}" > echo "replace the leading \"ab\" to uppercase: ${var^ab}" # expect > to get "ABcabc" ? > echo "replace all the \"ab\" to uppercase: ${var^^ab}" # expect > to get "ABcABc" ? > > Case modification does not work the way you expected. It operates on single chars other than strings. > echo "replace the first \"a\" to uppercase: ${var^a}" > echo "replace all \"a\" to uppercase: ${var^^a}" > > Then the result is: > > mylogin@Xubuntu:~/shell$ ./a.sh > var: abcabc > replace the leading "ab" to uppercase: abcabc --> incorrect > replace all the "ab" to uppercase: abcabc --> incorrect > replace the first "a" to uppercase: Abcabc --> correct > replace all "a" to uppercase: AbcAbc --> correct > > > Repeat-By: > > -- > Jerry Wang jerry.j.w...@alcatel-lucent.com > > -- Clark J. Wang