From: Joshua Nelson <jynelson@email.sc.edu>
To: Jilles Tjoelker <jilles@stack.nl>
Cc: dash@vger.kernel.org, cdaniels@fastmail.com
Subject: Re: [BUG] $PATH not fully searched
Date: Wed, 10 Jan 2018 18:44:37 -0500 [thread overview]
Message-ID: <1689301.2NH6bUEWrJ@debian-thinkpad> (raw)
In-Reply-To: <20180110221815.GA44971@stack.nl>
[-- Attachment #1: Type: text/plain, Size: 2156 bytes --]
This was precisely the problem! Thanks so much for your help,
I changed the relevant parts of ~/.profile to "$HOME/<path>" instead.
On Wednesday, January 10, 2018 23:18:15 EST Jilles Tjoelker wrote:
> On Wed, Jan 10, 2018 at 01:36:18PM -0500, Joshua Nelson wrote:
> > I've come across an error with the PATH variable in `dash`. Instead of
> > fully searching PATH for commands, dash will respond 'command not
> > found' if `command -p <executable>` fails. The same command works
> > fine in Bash.
> >
> > The following example was performed in a live cd of Debian 9.1 Stretch
> > (run in a virtual machine), with dash version 0.5.8-2.4:
> >
> > ```bash
> > user@debian:~$ PATH="~/my_bin:$PATH" dash
> > $ echo $PATH
> > ~/my_bin:/usr/local/bin:/usr/bin:/usr/local/games:/usr/games
> > $ ls -l ~/my_bin/list
> > -rwxr--r-- 1 user user 18 Jan 10 17:42 /home/user/my_bin/list
> > $ list
> > dash: 3: list: not found
> > $ exit
> > user@debian:~$ PATH="$PATH:~/my_bin" list
> > Desktop Documents Downloads Music my_bin Pictures Public Templates Videos
> > ```
> >
> > I believe but am not certain that this is related to the following patch:
> > https://www.mail-archive.com/dash@vger.kernel.org/msg01329.html
>
> In your example, the tilde is quoted and ends up literally in PATH.
> Then, in bash only, tilde expansion is attempted again during the
> search. In my testing, zsh, mksh, ksh93, dash and FreeBSD sh do not
> implement this feature. Enabling POSIX mode in bash also disables the
> feature.
>
> What works more portably is
> PATH=~/my_bin:$PATH dash
> or
> PATH=$PATH:~/my_bin list
> which expands the tilde at the time of the assignment. This works pretty
> much everywhere except in old real Bourne shells, which do not implement
> tilde expansion at all.
>
> If you want to quote the $PATH part, it is possible but not necessary
> since it is in a variable assignment which is not subject to pathname
> generation and word splitting anyway. However, if "export" is prepended,
> I strongly recommend quoting it since some shells such as dash do not
> implement the special rule for assignment utilities yet.
>
> --
> Jilles Tjoelker
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2018-01-10 23:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-10 18:36 [BUG] $PATH not fully searched Joshua Nelson
2018-01-10 22:18 ` Jilles Tjoelker
2018-01-10 23:44 ` Joshua Nelson [this message]
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=1689301.2NH6bUEWrJ@debian-thinkpad \
--to=jynelson@email.sc.edu \
--cc=cdaniels@fastmail.com \
--cc=dash@vger.kernel.org \
--cc=jilles@stack.nl \
/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