This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: alias appears to not work inside a called bash script


On 21.08.2017 15:53, Eliot Moss wrote:
From the bash man page:

"Aliases are  ot expanded when the shell is not interactive, unless
the expand_aliases shell option
is set using shopt (see the description of shopt under SHELL BUILTIN
COMMANDS below)."

Could that be the root of your difficulty?

There is an issue there (though not for the Cygwin project).

I don't see where this behavior is required in POSIX: that is,
expanding aliases in interactive mode, but ignoring them in non-interactive
operation.

POSIX seems to unequivocally be calling for Alias Expansion to occur
under all conditions.

And, indeed, this is not a bug in Bash; they know that this is
a POSIX deviation. Because, voila, aliases *are* expanded in
script mode if we do one of two things:

   #!/bin/bash --posix

   #!/bin/sh

Bash in POSIX mode knows every well that it had better
expand aliases regardless of non-interactive operation.

However, *suppressing* a useful behavior in a default, non-standard
mode is highly counter-intuitive.

I mean we can't even call this a vendor *extension* with a straight
face. What do we call this? "retraction?" :)

"To disable the vendor-specific retraction that aliases don't
work, operate bash in POSIX mode, or use the expand_aliases
shopt."

:)


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]