delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/08/21/11:35:57

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-10.5 required=5.0 tests=AWL,BAYES_00,KHOP_PGP_SIGNED,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD,SPF_HELO_PASS
X-Spam-Check-By: sourceware.org
Message-ID: <5033AAB8.8010705@redhat.com>
Date: Tue, 21 Aug 2012 09:35:20 -0600
From: Eric Blake <eblake AT redhat DOT com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120717 Thunderbird/14.0
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: /etc/profile
References: <loom DOT 20120821T114938-389 AT post DOT gmane DOT org> <50337A02 DOT 8070809 AT redhat DOT com> <loom DOT 20120821T153030-47 AT post DOT gmane DOT org>
In-Reply-To: <loom.20120821T153030-47@post.gmane.org>
OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--------------enig2F9C550E0567370E4684C2FF
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

On 08/21/2012 08:38 AM, Achim Gratz wrote:
> That saves us a fork, so it may even be a net win, on the other hand fork=
ing a
> subshell saves us the restore of LC_ALL...  How about this, then (which d=
oesn't
> fork and handles spaces correctly):
>=20
> profile_d ()
> {
>   for file in /etc/profile.d/*.$1 ; do
>     [ -e "${file}" ] && . "${file}"
>   done
>   unset file
> }
>=20
> and then calling it like this:
>=20
>   LC_ALL=3DC profile_d *.sh

Sorry, POSIX requires that to leave LC_ALL set after the function call,
which is not what you want (bash behaves differently according to
whether it was started as bash or sh).

$ ksh -c 'foo=3Dbar; blah() { :; }; foo=3Dbaz blah; echo $foo'
baz
$ bash -c 'foo=3Dbar; blah() { :; }; foo=3Dbaz blah; echo $foo'
bar
$ sh -c 'foo=3Dbar; blah() { :; }; foo=3Dbaz blah; echo $foo'
baz

--=20
Eric Blake   eblake AT redhat DOT com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


--------------enig2F9C550E0567370E4684C2FF
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Public key at http://people.redhat.com/eblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBCAAGBQJQM6q4AAoJEKeha0olJ0NqZQ0H/Rl53kRQW0HWykWAoREUUUfO
G65mAXm3/jkg4VhKNTJxPcLgDxJsvN1HrTkRF2MJkZynQ0tz9TufWQrflea75U7E
MzGKEFUnkC2IxCi96VVGhGuP5xcIxGEQB5YxxjeXspeiJ0eHTGgs19UgNFayzX//
hYNYfRfChiqCS0Bv90wZJibBzh/91XWibhh7yGgbWW7SZJB9PPvUB+9LrIa6Qdpi
8PRaMZt/qoW+H/2oidczP3jGbRIghzH2Ssn8wf0isRGLhGnRo2frM78VudGq1TNT
ad9K+tV6KOdzIZhUj/zBlo2J4zqPZ3+sdQ3QbyOTUP33c6Dp6laBTKAy6oOzTgM=
=Dqjr
-----END PGP SIGNATURE-----

--------------enig2F9C550E0567370E4684C2FF--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019