All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

      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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.