On 05/01/2012 12:53 PM, Dominique Michel wrote:
A very common way to write $HOME in a path is with ~

With "PATH="~/bin:$PATH" into ~/.bash_profile, I get only the first
menu line on the screen.
With "PATH="/home/dom/bin:$PATH" into ~/.bash_profile, I get the 2
menu lines on the screen.

It look like the "Test (x xdradio) ..." work only in the first case.
Is it a bug in fvwm or somewhere else, or some obscure and wanted stuff
I am not aware of?
It is an issue with the shell, and how it expands special characters. When the shell encounters an Env Variable or a special character like ~, *, !, etc it exapnds it based on the rules of the character.

So when you have PATH="~/bin/:$PATH" because of the way the shell works it will expand $PATH correctly but it will not mess with the character "~" because it is inside quotes. What you should do it type this in a shell

echo $PATH

and you will see that your PATH still contains the ~ and it wasn't expanded to your home directally like it should have been. What this does is confuse things that use the PATH variable. Some may expand the ~ but my guess is most won't. It is preferable to do

PATH="$HOME/bin:$PATH" to ensure everything gets expanded correctly by the shell.

Another issue is putting a * or a ? in there would also cause issues because the shell is instructed to not expand things because of being between quotes.

jaimos

Reply via email to