Date: Fri, 9 Jul 1999 08:55:59 -0700 (PDT) From: pfeifer@dbai.tuwien.ac.at To: freebsd-gnats-submit@freebsd.org Subject: bin/12578: `cd somewhere` changes current working directory in /bin/sh scripts Message-ID: <19990709155559.8B96B14EA4@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 12578 >Category: bin >Synopsis: `cd somewhere` changes current working directory in /bin/sh scripts >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jul 9 09:00:01 PDT 1999 >Closed-Date: >Last-Modified: >Originator: Gerald Pfeifer >Release: FreeBSD 3.2-RELEASE i386 >Organization: >Environment: FreeBSD polaris.dbai.tuwien.ac.at 3.2-RELEASE FreeBSD 3.2-RELEASE #0: Tue May 18 04:05:08 GMT 1999 jkh@cathair:/usr/src/sys/compile/GENERIC i386 >Description: `man sh` says Command Substitution Command substitution allows the output of a command to be substituted in place of the command name itself. Command substitution occurs when the command is enclosed as follows: $(command) or (``backquoted'' version): `command` The shell expands the command substitution by executing command in a sub- shell environment and replacing the command substitution with the stan- dard output of the command, yet a `cd /some/where` actually does change the current working directory of a shell script it occurs in, i.e., apparently it is not invoked in a sub-shell. Debian GNU/Linux 2.1 (with bash), Solaris 2.6, AIX 4.1 and DEC OSF1 4.0 behave as expected, see "How to repeat the problem". >How-To-Repeat: Run the following script: #!/bin/sh cd /tmp echo .`cd /`. pwd The expected output (as obtained on Solaris 2.6, Debian GNU/Linux 2.1, AIX 4.1 and DEC OSF1 4.0) is as follows .. /tmp while FreeBSD 3.2 incorrectly prints .. / >Fix: Replace /bin/sh by bash. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990709155559.8B96B14EA4>