public inbox for dash@vger.kernel.org
 help / color / mirror / Atom feed
* dash should not propagate aliases to subshells
@ 2023-10-03  9:54 Дилян Палаузов
  2023-10-03 19:36 ` Lawrence Velázquez
  0 siblings, 1 reply; 2+ messages in thread
From: Дилян Палаузов @ 2023-10-03  9:54 UTC (permalink / raw)
  To: dash, 1053394

To: 1053394@bugs.debian.org, dash@vger.kernel.org

Hello,

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_03_01 
says:

2.3.1 Alias Substitution

When used as specified by this volume of POSIX.1-2017, alias definitions 
shall not be inherited by separate invocations of the shell or by the 
utility execution environments invoked by the shell.


So a subshell shall have no knowledge about the aliases from the 
supershell, and backticks start a subshell.

These programs

#!/bin/bash
alias wslpath=echo
find `wslpath /tmp`

and

#!/bin/dash
alias wslpath=echo
find `wslpath /tmp`

produce different results (bash 5.2.15-3.fc38,  dash 0.5.12-1.fc38) when 
executed on a WSL2 system.  The former program shows the content of the 
current directory, the latter program shows the content of /tmp .

Moreover, I filled this initially towards the Debian Bug tracking system 
(cf. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1053394) , and 
was then told to check http://gondor.apana.org.au/~herbert/dash/ .

Please include in the repository 
https://git.kernel.org/pub/scm/utils/dash/dash.git links to 
http://gondor.apana.org.au/~herbert/dash/ and dash@vger.kernel.org , for 
instance in src/dash.1, so that it is documented where to report 
problems in dash.

Kind regards
   Dilyan

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: dash should not propagate aliases to subshells
  2023-10-03  9:54 dash should not propagate aliases to subshells Дилян Палаузов
@ 2023-10-03 19:36 ` Lawrence Velázquez
  0 siblings, 0 replies; 2+ messages in thread
From: Lawrence Velázquez @ 2023-10-03 19:36 UTC (permalink / raw)
  To: Дилян Палаузов
  Cc: dash, 1053394

On Tue, Oct 3, 2023, at 5:54 AM, Дилян Палаузов wrote:
> https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_03_01 
> says:
>
> 2.3.1 Alias Substitution
>
> When used as specified by this volume of POSIX.1-2017, alias definitions 
> shall not be inherited by separate invocations of the shell or by the 
> utility execution environments invoked by the shell.
>
>
> So a subshell shall have no knowledge about the aliases from the 
> supershell

You are mistaken; subshells are not "separate invocations".  See
section 2.12:

	A subshell environment shall be created as a duplicate of
	the shell environment, except that signal traps that are
	not being ignored shall be set to the default action.

> These programs
>
> #!/bin/bash
> alias wslpath=echo
> find `wslpath /tmp`
>
> and
>
> #!/bin/dash
> alias wslpath=echo
> find `wslpath /tmp`
>
> produce different results (bash 5.2.15-3.fc38,  dash 0.5.12-1.fc38) when 
> executed on a WSL2 system.  The former program shows the content of the 
> current directory, the latter program shows the content of /tmp .

That is because aliases are not expanded at all in noninteractive
bash "native mode" shells.  If you were to run bash as "sh" or with
its "--posix" option, then you would see the same behavior as with
dash.

-- 
vq

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-10-03 19:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-03  9:54 dash should not propagate aliases to subshells Дилян Палаузов
2023-10-03 19:36 ` Lawrence Velázquez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox