|
|
#21 |
|
Site Admin
Join Date: Jan 2002
Location: Montreal
Posts: 32,473
|
try using full paths only
I can't help but think we are getting confused here by the use of relative paths and the use of ~ in pathnames. Could we please try everything again, using only full path names (starting with a slash)?
E.g. one thing that is strange is that your '/usr/bin/which' command seems to be using the ~ in its output - mine does not. So please try the following in a tcsh shell and report back on the results. (Don't type in the commands - just copy and paste them into the Terminal all at once, then copy & paste the results back into a Reply here.): echo $SHELL setenv PATH "/Users/mikewhitlaw/bin2:/Users/mikewhitlaw/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin" echo $PATH cd pwd ls -ld .. ls -ld . ls -ld bin ls -ld bin2 ls -l bin/tester ls -l bin2/ls ls bin/tester | wc ls bin/ls | wc which which which tester which ls /usr/bin/which tester /usr/bin/which ls echo "That's all ..." |
|
|
|
|
|
#22 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
progress!
Now this is just figgin wierd: I changed my .login from:
setenv PATH "~/bin:/usr/local/bin:$PATH" to an explicit setenv PATH "/users/mikewhitlaw/bin:/usr/local/bin:$PATH" and it worked! After doing this I noticed the lower case u in /users and thought it curious that this worked. So I changed it to: setenv PATH "/Users/mikewhitlaw/bin:/usr/local/bin:$PATH" and that worked too! It's only when I use: setenv PATH "~/bin:/usr/local/bin:$PATH" that it doesn't work. So now I have two questions: What's with Users and users being the same? Why is ~/bin different from /Users/mikewhitlaw/bin? And I know you'll want proof so: Last login: Tue Oct 1 22:25:31 on ttyp1 Welcome to Darwin! [foofy:~] mikewhitlaw% cat .login setenv PATH "~/bin:/usr/local/bin:$PATH" [foofy:~] mikewhitlaw% echo $PATH /Users/mikewhitlaw/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [foofy:~] mikewhitlaw% which tester tester: Command not found. [foofy:~] mikewhitlaw% --- edit .login, close terminal, open terminal --- Last login: Tue Oct 1 22:33:30 on ttyp1 Welcome to Darwin! [foofy:~] mikewhitlaw% cat .login setenv PATH "/users/mikewhitlaw/bin:/usr/local/bin:$PATH" [foofy:~] mikewhitlaw% echo $PATH /users/mikewhitlaw/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [foofy:~] mikewhitlaw% which tester /users/mikewhitlaw/bin/tester [foofy:~] mikewhitlaw% --- edit .login, close terminal, open terminal --- Last login: Tue Oct 1 22:35:13 on ttyp1 Welcome to Darwin! [foofy:~] mikewhitlaw% cat .login setenv PATH "/Users/mikewhitlaw/bin:/usr/local/bin:$PATH" [foofy:~] mikewhitlaw% echo $PATH /Users/mikewhitlaw/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [foofy:~] mikewhitlaw% which tester /Users/mikewhitlaw/bin/tester [foofy:~] mikewhitlaw% wadaya think? |
|
|
|
|
|
#23 |
|
League Commissioner
Join Date: Jan 2002
Posts: 5,536
|
hmm, you dint actually run tester so i'm thinking your testing is incomplete
![]() odd that your ~ isn't expanded to your home dir in that respect. but, i'm glad it's over. mostly. keep diggin' thanks to hayne for subdividing this nut into its subatomic particles.
__________________
On a clear disk, you can seek forever. |
|
|
|
|
|
#24 |
|
Major Leaguer
Join Date: Jan 2002
Location: Adelaide, South Australia
Posts: 470
|
Aah, you guys: it's just that ~ expansion doesn't work to work correctly in setenv calls, so they should always be explicit paths.
The problem is that ~ expansion only works correctly if the ~ is the first character of a word. So even if you have to add a quote mark to the beginning of a setenv call (as per some of the examples above) it'll undermine your expectations. Funky, but documented in "man tcsh". Sorry being late to the party on this one: I'm sure you all enjoyed the ride! Cheers, Paul Last edited by pmccann; 10-02-2002 at 09:32 PM. |
|
|
|
|
|
#25 |
|
Guest
Posts: n/a
|
Paul, you're a genius. This has been an entertaining thread.
|
|
|
|
#26 | ||||||||||||||||||||||||||||||||||||||
|
Site Admin
Join Date: Jan 2002
Location: Montreal
Posts: 32,473
|
Two answers
1) The OS X filesystem (HFS+) is case-preserving but case-insensitive. So it keeps whatever case you use for filenames but it doesn't distinguish Foo from FOO from foo. (or Users from users). 2) As pointed out above by pmccann, the shell does the conversion from ~ to the full path only in certain cases. Here's the relevant extract from 'man tcsh':
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
#27 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
Thanks to all
This has been a big help. My faith has been restored...
|
|
|
|
|
|
#28 |
|
MVP
Join Date: Jan 2002
Location: Brisbane, Australia
Posts: 1,108
|
And I have been given another reason to avoid 'csh' type shells like the plague!
sh or ksh for me.
__________________
Douglas G. Stetner UNIX Live Free Or Die |
|
|
|
|
|
#29 |
|
Major Leaguer
Join Date: Jan 2002
Location: Adelaide, South Australia
Posts: 470
|
Hey Doug,
come to where the flavour is: zsh country. It's been nothing short of smile-inducing in the time I've been using it (and should prove eminently comfortable for a ksh'er). You know you want to. Cheers, Paul ps Jaguar includes zsh 4.04, which is not too old. (4.05 seems to have been released in Aug 2002, a bit late for 10.2) |
|
|
|
![]() |
|
|