Package: devscripts
Version: 2.9.27
Severity: normal
Hello,
Looks like pattern parameter expansions:
${parameter#word}, ${parameter##word},
${parameter%word}, ${parameter%%word},
${parameter/pattern/string} and ${parameter//pattern/string}),
parameter length expansion ${#parameter},
error expansions:
${parameter:?error message} and ${parameter?error message}
varnames expansion:
${!prefix*} and [EMAIL PROTECTED]
are bashisms too and checkbashisms doesn't check for these.
For example, on Solaris the above expansions doesn't work
(${parameter:-word}, ${parameter:=word} etc. do):
> [EMAIL PROTECTED]:~$ cat subst.sh
> #!/bin/sh
> (echo '${PATH} =' ${PATH})
> (echo '${PATH+/bin} =' ${PATH+/bin})
> (echo '${PATH:+/bin} =' ${PATH:+/bin})
> (echo '${PATH-/bin} =' ${PATH-/bin})
> (echo '${PATH:-/bin} =' ${PATH:-/bin})
> (echo '${PATH=/bin} =' ${PATH=/bin})
> (echo '${PATH:=/bin} =' ${PATH:=/bin})
> (echo '${PATH?No PATH} =' ${PATH?No PATH})
> (echo '${PATH:?No PATH} =' ${PATH:?No PATH})
> (echo '${!P*} =' ${!P*})
> (echo '[EMAIL PROTECTED] =' [EMAIL PROTECTED])
> (echo '${PATH:1} =' ${PATH:1})
> (echo '${PATH:0:7} =' ${PATH:0:7})
> (echo '${#PATH} =' ${#PATH})
> (echo '${PATH%%:*} =' ${PATH%%:*})
> (echo '${PATH%:*} =' ${PATH%:*})
> (echo '${PATH#*:} =' ${PATH#*:})
> (echo '${PATH##*:} =' ${PATH##*:})
> (echo '${PATH/local/loc} =' ${PATH/local/loc})
> (echo '${PATH//local/loc} =' ${PATH//local/loc})
> [EMAIL PROTECTED]:~$ ./subst.sh
> ${PATH} = /usr/bin:/usr/local/ant/bin:/usr/local/bin
> ${PATH+/bin} = /bin
> ${PATH:+/bin} = /bin
> ${PATH-/bin} = /usr/bin:/usr/local/ant/bin:/usr/local/bin
> ${PATH:-/bin} = /usr/bin:/usr/local/ant/bin:/usr/local/bin
> ${PATH=/bin} = /usr/bin:/usr/local/ant/bin:/usr/local/bin
> ${PATH:=/bin} = /usr/bin:/usr/local/ant/bin:/usr/local/bin
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
> ./subst.sh: bad substitution
checkbashism knows only about substring expansion and
replace expansion though:
> [EMAIL PROTECTED]:~$ checkbashisms ./subst.sh
> possible bashism in ./subst.sh line 13 (${foo:3[:1]}):
> (echo '${PATH:1} =' ${PATH:1})
> possible bashism in ./subst.sh line 14 (${foo:3[:1]}):
> (echo '${PATH:0:7} =' ${PATH:0:7})
> possible bashism in ./subst.sh line 20 (${parm/?/pat[/str]}):
> (echo '${PATH/local/loc} =' ${PATH/local/loc})
> possible bashism in ./subst.sh line 21 (${parm/?/pat[/str]}):
> (echo '${PATH//local/loc} =' ${PATH//local/loc})
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-grsec
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Versions of packages devscripts depends on:
ii debianutils 2.17 Miscellaneous utilities specific t
ii dpkg-dev 1.13.25 package building tools for Debian
ii libc6 2.3.6.ds1-8 GNU C Library: Shared libraries
ii perl 5.8.8-7 Larry Wall's Practical Extraction
ii sed 4.1.5-1 The GNU sed stream editor
Versions of packages devscripts recommends:
ii fakeroot 1.5.10 Gives a fake root environment
-- no debconf information
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]