bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: proposed BASH_SOURCE_PATH


From: Will Allan
Subject: Re: proposed BASH_SOURCE_PATH
Date: Wed, 19 Jun 2024 21:17:09 +0000 (UTC)

Yes, that's precisely my point. It suddenly becomes more complex and bug prone 
than at first glance. To do it without a subshell, I need something like this 
boilerplate at the top of each of my main scripts:

if [[ "${BASH_SOURCE[0]}" == */* ]]; then
  SCRIPT_DIR="${BASH_SOURCE[0]%/*}"
else
  SCRIPT_DIR="."
fi

-Will




On Wednesday, June 19, 2024 at 02:08:27 PM PDT, Koichi Murase 
<myoga.murase@gmail.com> wrote: 





2024年6月20日(木) 5:47 Léa Gris <lea.gris@noiraude.net>:
> Look like you did not find a proper answer there. Here is one simple
> that involve no sub-shell at all and does exactly what your sub-shell
> version does.
>
> declare -r SCRIPT_DIR=${BASH_SOURCE[0]%/*}

This doesn't work as explained by Will. BASH_SOURCE doesn't contain a
slash when the script is specified as e.g. `bash a.sh' or `source
a.sh'.


> [...] it is not system agnostic anymore.


POSIX 2024 containing realpath(1) was just published, though I'm not
sure when/whether it will be available in very old systems.

--
Koichi



reply via email to

[Prev in Thread] Current Thread [Next in Thread]