[systemd-devel] [PATCH 1/2] configure.ac: strip off trailing slashed from $rootprefix
Christian Seiler
christian at iwakd.de
Sat May 30 04:13:23 PDT 2015
On 05/30/2015 12:42 PM, Daniel Mack wrote:
> On 05/30/2015 12:31 PM, Christian Seiler wrote:
>> Speaking of: using 'echo' for shell scripting is problematic, because
>> while bash, busybox's sh, mksh, pdksh and zsh don't interpret escape
>> sequences (\n, \0oo, ...) by default when using echo and invoked as
>> /bin/sh, dash and ash do. (Note that e.g. dash ist default on Debian,
>> so it's not like this is something theoretical.) Also, when invoked as
>> their proper name (not as /bin/sh), only bash and busybox's shell do
>> not interpret escape sequences by default with echo. (In short: it's a
>> mess.)
>
> It's a mess indeed. Now we only need a POSIX compliant way to strip
> _all_ trailing dashes from a string, then we can get rid of that one
> occurrence of 'sed' in configure.ac :)
Define once:
# (local variables in functions are a bashism, don't use them, but
# name global variable in such a way that it won't clash with
# anything else)
strip_trailing_slashes()
{
_strip_trailing_slashes_value="$1"
while [[ "${_strip_trailing_slashes_value}" != "${_strip_trailing_slashes_value%/}" ]] ; do
_strip_trailing_slashes_value="${_strip_trailing_slashes_value%/}"
done
printf '%s\n' "${_strip_trailing_slashes_value}"
}
Later:
VAR=$(strip_trailing_slashes "$VAR")
(Or, alternatively, repeat the loop each time, you're using M4
anyway, so you could AC_DEFUN the whole thing.)
It's up to you to decide what you find more appealing.
Christian
More information about the systemd-devel
mailing list