The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: michael@kjorling.se (Michael Kjörling)
Subject: [TUHS] Shell control through external commands
Date: Sat, 10 Sep 2016 09:13:07 +0000	[thread overview]
Message-ID: <20160910091307.GE14636@yeono.kjorling.se> (raw)
In-Reply-To: <20160910074508.GE5970@dnied%tiscali.it>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1825 bytes --]

On 10 Sep 2016 09:45 +0200, from dnied at tiscali.it (Dario Niedermann):
> Il 15/07/2016 alle 14:27, Norman Wilson ha scritto:
>> lu$ cat /bin/cd
>> #!/bin/sh
>> builtin cd "$@"
>> lu$ 
> 
> But doesn't this change the current dir only in the child shell?
> Which then exits right after the second line, parent shell's $PWD
> unaffected. I really don't see how this script is useful.

It does appear rather useless. Curiously, Debian (checked on Wheezy =
bash 4.2+dfsg-0.1+deb7u3 and Jessie = bash 4.3-11+b1) seems to not
supply anything like that, so it would appear to be some kind of
Fedora-ism rather than a part of anything upstream; that, or the
Debian folks are actually paying attention to what they ship onto
users' systems.

Even more curious, check this out from Debian Wheezy (I suspect the
Jessie system would behave identically):

$ cat > /michael/home/bin/cd
#!/bin/sh
builtin cd "$@"
^D
$ chmod +x bin/cd
$ echo $PATH
/michael/home/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ type cd
cd is a shell builtin
$

so not even the shell will use the script in the first place!

If I force the shell to use the script I created (by saying ~/bin/cd
instead of just cd), after fixing /bin/sh to /bin/bash because when
run as sh the shell has no concept of "builtin", it behaves like you'd
expect: the working directory changes _within_ the script, but $PWD is
unchanged in the parent shell once the script finishes, turning it
into a somewhat expensive no-op.

Unless Fedora's shell has been specifically modified to pay attention
to the child process' $PWD, of course...

-- 
Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se
                 “People who think they know everything really annoy
                 those of us who know we don’t.” (Bjarne Stroustrup)


  reply	other threads:[~2016-09-10  9:13 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-15 12:27 Norman Wilson
2016-09-10  7:45 ` Dario Niedermann
2016-09-10  9:13   ` Michael Kjörling [this message]
2016-09-10  9:41     ` Joerg Schilling
2016-09-10 17:06     ` Random832
2016-09-10 17:45       ` Dario Niedermann
2016-09-10 19:53         ` Dan Cross
2016-09-10 20:02         ` Chet Ramey
2016-09-10 20:27           ` Dario Niedermann
2016-09-11 10:03         ` Diomidis Spinellis
2016-09-12 10:05         ` Jacob Goense
  -- strict thread matches above, loose matches on Subject: below --
2016-09-12 12:57 Norman Wilson
2016-09-12 12:56 Norman Wilson
2016-09-12  1:43 Norman Wilson
2016-09-12  9:18 ` Joerg Schilling
2016-09-12  1:31 Norman Wilson
2016-09-12  9:33 ` Joerg Schilling
2016-09-12  0:27 Doug McIlroy
2016-09-11 17:39 Doug McIlroy
2016-09-11 18:11 ` Clem Cole
2016-09-11 18:27 ` Dan Cross
2016-09-11 18:50   ` Sven Mascheck
2016-09-11 22:13     ` Random832
2016-09-10 14:57 Nemo
2016-07-15 16:47 Doug McIlroy
2016-09-10 17:40 ` Dario Niedermann
2016-09-10 19:22   ` arnold
2016-09-12  8:35     ` markus schnalke
2016-09-12  9:25       ` Joerg Schilling
2016-09-12 12:41         ` Tony Finch
2016-09-12 12:50           ` Joerg Schilling
2016-09-13  0:17             ` Sven Mascheck
2016-09-13  1:45               ` Sven Mascheck
2016-09-13  9:20               ` Joerg Schilling
2016-09-12 20:12       ` Dave Horsfall
2016-09-12 21:36         ` Dave Horsfall
2016-09-10 22:43   ` Dave Horsfall
2016-09-11  1:24     ` Ron Natalie
2016-09-11  2:39       ` arnold
2016-09-11  2:41         ` Ronald Natalie
2016-09-11  4:07         ` Dave Horsfall
2016-09-11  5:01           ` arnold
2016-09-12  5:49             ` Dave Horsfall
2016-07-15  4:29 Rudi Blom
2016-07-14 13:18 Diomidis Spinellis
2016-07-14 13:23 ` Clem Cole
2016-07-14 14:12   ` Mary Ann Horton
2016-07-14 22:36   ` Dave Horsfall
2016-07-14 22:47     ` Corey Lindsly
2016-07-14 22:49     ` Peter Jeremy
2016-07-14 23:27       ` Marc Rochkind
2016-07-15 10:13         ` Joerg Schilling
     [not found]       ` <CAH_OBieVFzPn93L8=_fmbUycZ7UmYdXiopC0vgei6RGDZp0mHw@mail.gmail.com>
     [not found]         ` <CAH_OBie_6gFy+BqkCMj+sr0NqTMNOQxvgWf6SQnHMJpn7DAytA@mail.gmail.com>
2016-07-14 23:56           ` shawn wilson
2016-07-15  1:04             ` Dave Horsfall
2016-07-15  1:22               ` Steve Nickolas
2016-07-15  2:25               ` arnold
2016-07-16  6:26                 ` Dave Horsfall
2016-07-15  2:25             ` Random832
2016-07-15  3:59               ` Dave Horsfall
2016-07-15  4:09                 ` Random832
2016-07-15 13:55                 ` Chet Ramey
2016-07-14 23:10     ` Ronald Natalie
2016-07-15  1:41       ` Nemo
2016-07-15  9:00     ` Tony Finch
2016-07-14 14:11 ` schoedel
2016-07-14 14:38   ` Diomidis Spinellis
2016-07-14 15:46 ` John Cowan
2016-07-14 16:30   ` Random832
2016-07-14 22:32 ` Dave Horsfall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160910091307.GE14636@yeono.kjorling.se \
    --to=michael@kjorling.se \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).