Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Reply-To: From: "Jan Schormann" To: Subject: Handling of /etc/profile.d broken? Date: Mon, 3 May 2004 10:18:44 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0011_01C430F8.03BA2510" X-OriginalArrivalTime: 03 May 2004 08:18:44.0729 (UTC) FILETIME=[40488690:01C430E7] X-Spam-Status: No, hits=-104.8 required=5.5 tests=BAYES_10,MSGID_GOOD_EXCHANGE,USER_IN_WHITELIST version=2.55 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-IsSubscribed: yes Note-from-DJ: This may be spam ------=_NextPart_000_0011_01C430F8.03BA2510 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hi, I've just noticed a weird problem: When I set an environment variable in a script in /etc/profile.d, I never see it in my shell. For example, take ---- /etc/profile.d/blub.sh: export blub=1 ---- Adding "echo $blub" to the loop in /etc/profile, I can see that it gets set, but is unset immediately after the loop. The attached patch changes the loop from the "find ... | while ..." idiom to "for f in `find ...` ...", and that works. Is it true that the "|" starts a new sub-shell, which makes all the "export" commands and the use of the "source" (".") obsolete? What a pity. I wonder whether it has been like that all the time, and I'm the only one who's so stupid as to try and set environment variables in /etc/profile.d? Funny world ;-) Any hints? Best wishes, Jan. ------=_NextPart_000_0011_01C430F8.03BA2510 Content-Type: application/octet-stream; name="profile.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="profile.patch" --- /etc/profile~ 2003-09-02 11:14:35.695367000 +0200 +++ /etc/profile 2004-05-03 10:08:17.905875000 +0200 @@ -47,7 +47,7 @@ =20 # Run all of the profile.d scripts # Note that these are supplied by separate packages -/bin/find /etc/profile.d -iname '*.sh' -type f | while read f; do +for f in `/bin/find /etc/profile.d -iname '*.sh' -type f`; do if [ -f "$f" ]; then . "$f" fi ------=_NextPart_000_0011_01C430F8.03BA2510 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ------=_NextPart_000_0011_01C430F8.03BA2510--