|
|
#1 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
I am using tchs
Let's say my user name is johndoe I have in my .login the following: setenv PATH "~/bin:/usr/local/bin:$PATH" ---- When I issue the command: echo $PATH I get: /Users/johndoe/bin:usr/local/bin:/bin:/sbin/usr/bin:usr/sbin --- I put an executable (call it xyzcommand) in my ~/bin directory. while I'm in my ~/ directory (or any other directory that's NOT ~/bin) I type the xyzcommand and I'm told xyzcommand cannot be found. if I type ~/bin/xyzcommand it works fine. the directory IS IN THE PATH yet the commands in that directory are not found. any clues? |
|
|
|
|
|
#2 |
|
Major Leaguer
Join Date: Jan 2002
Location: Northern Virginai
Posts: 294
|
tcsh does some kind of caching of the names of executables. I assume that this makes it faster to get to stuff.
If you give it a commandname without a path (like "xyzcommand"), it looks in its cache to determine where the actual file is. If you give it a command with a path (partial or full) (like "~/bin/xyzcommand" or "./xyzcommand") it just goes and runs the specified file. To get tcsh to rescan your path directories for new commands, type "rehash" |
|
|
|
|
|
#3 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
Thanks for the quick reply. I had already tried the rehash command. Still no good. It's very strange.
|
|
|
|
|
|
#4 |
|
Major Leaguer
Join Date: Jan 2002
Location: Northern Virginai
Posts: 294
|
Are you sure the executable has execute permissions?
|
|
|
|
|
|
#5 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
Yup, checked that. It has x in all.
To be sure, I copied the command to the /usr/local/bin directory, executed rehash, and the executable executed from anywhere. I did a 'which xyzcommand' to see which one it was executing: it was executing the /usr/local/bin one. I deleted the one in /usr/local/bin and tried again. Nothing. It doesn't see it. |
|
|
|
|
|
#6 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
Now this is interesting. I tried it from a bash shell and it worked fine. The plot thickens...
|
|
|
|
|
|
#7 |
|
League Commissioner
Join Date: Jan 2002
Posts: 5,536
|
sheesh!
why all the trickery with the real name hiding? why not copy pertinent input and output results directly from the shell? if you had done that, this thread may be only two posts long!
if you're going to hand craft the symptoms here, well, then all bets are off for analyzing your issues. it's not that i don't trust you; it's that i don't trust you. remove your command from /usr/local/bin/ show us: % echo $PATH % ls -l ~/bin/commandname % which commandname c'mon!
__________________
On a clear disk, you can seek forever. |
|
|
|
|
|
#8 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
As ORDERED:
[Mike-Whitlaws-Computer:~] mikewhitlaw% echo $PATH /Users/mikewhitlaw/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [Mike-Whitlaws-Computer:~] mikewhitlaw% ls -l ~/bin total 8 -rwxr-xr-x 1 mikewhit staff 41 Sep 30 22:58 tester [Mike-Whitlaws-Computer:~] mikewhitlaw% which tester tester: Command not found. [Mike-Whitlaws-Computer:~] mikewhitlaw% ~/bin/tester Why can't I be seen? [Mike-Whitlaws-Computer:~] mikewhitlaw% cat ~/bin/tester #!/bin/bash echo "Why can't I be seen?" [Mike-Whitlaws-Computer:~] mikewhitlaw% Last edited by windlaser; 09-30-2002 at 11:04 PM. |
|
|
|
|
|
#9 |
|
Site Admin
Join Date: Jan 2002
Location: Montreal
Posts: 32,473
|
more things to check
Three things to check (and report back here):
1) To confirm what shell you are using, please do: echo $SHELL 2) You've shown us that /Users/mikewhitlaw/bin is in your path. You've shown us that the 'tester' script is in the directory ~/bin But you haven't shown us that ~/bin is /Users/mikewhitlaw/bin How about doing: echo ~/bin 3) You've shown us that 'which tester' doesn't find it. But which version of 'which' are you using? Try doing: which which And please also show us what you get when you just try to execute the 'tester' program from the shell. I.e. show us the result of doing the following command: tester |
|
|
|
|
|
#10 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
[Mike-Whitlaws-Computer:~] mikewhitlaw% echo $SHELL
/bin/tcsh [Mike-Whitlaws-Computer:~] mikewhitlaw% echo ~/bin /Users/mikewhitlaw/bin [Mike-Whitlaws-Computer:~] mikewhitlaw% which which which: shell built-in command. [Mike-Whitlaws-Computer:~] mikewhitlaw% tester tester: Command not found. [Mike-Whitlaws-Computer:~] mikewhitlaw% ~/bin/tester Why can't I be seen? [Mike-Whitlaws-Computer:~] mikewhitlaw% |
|
|
|
|
|
#11 |
|
Site Admin
Join Date: Jan 2002
Location: Montreal
Posts: 32,473
|
one more thing
Okay, one more thing and then I'm going to give up.
Please show us the result of: ls -ld ~/bin Last edited by hayne; 10-01-2002 at 02:43 AM. |
|
|
|
|
|
#12 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
[Mike-Whitlaws-Computer:~] mikewhitlaw% ls -ld ~/bin
drwxr-xr-x 5 mikewhit staff 170 Sep 30 23:22 /Users/mikewhitlaw/bin [Mike-Whitlaws-Computer:~] mikewhitlaw% |
|
|
|
|
|
#13 |
|
League Commissioner
Join Date: Jan 2002
Posts: 5,536
|
well, raise my rent!
re: ORDERED - it was a suggestion, and speculative. it's difficult to gauge user skill levels. regardless, it is a quandry. i'm stumped. i'd need access to diagnose. show us: Code:
% ls -ld /Users /Users/mikewhitlaw % id |
|
|
|
|
|
#14 |
|
Site Admin
Join Date: Jan 2002
Location: Montreal
Posts: 32,473
|
try to reproduce it
Can you reproduce this mysterious behaviour with:
1) a differently named copy of your 'tester' script ? E.g. cp tester foo 2) an executable which is not a shell script ? E.g. copy /bin/ls to ~/bin 3) some other directory than ~/bin ? E.g. make a directory ~/bin2 and try it there. |
|
|
|
|
|
#15 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
Mike-Whitlaws-Computer:~] mikewhitlaw% echo $SHELL
/bin/tcsh [Mike-Whitlaws-Computer:~] mikewhitlaw% which ls /bin/ls [Mike-Whitlaws-Computer:~] mikewhitlaw% mkdir bin2 [Mike-Whitlaws-Computer:~] mikewhitlaw% cp /bin/ls /bin2 [Mike-Whitlaws-Computer:~] mikewhitlaw% echo $PATH /Users/mikewhitlaw/bin2:~/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [Mike-Whitlaws-Computer:~] mikewhitlaw% which ls /bin/ls [Mike-Whitlaws-Computer:~] mikewhitlaw% --- I changed my default shell to /bin/bash, and I can now execute the script but check out the 'which' call. What the heck is going on? --- [~]$ echo $SHELL /bin/bash [~]$ echo $PATH ~/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [~]$ echo ~/bin /Users/mikewhitlaw/bin [~]$ ls ~/bin tester [~]$ which tester no tester in ~/bin /usr/local/bin /bin /sbin /usr/bin /usr/sbin [~]$ tester Why can't I be seen? [~]$ tcsh [Mike-Whitlaws-Computer:~] mikewhitlaw% which tester tester: Command not found. [Mike-Whitlaws-Computer:~] mikewhitlaw% tester tester: Command not found. [Mike-Whitlaws-Computer:~] mikewhitlaw% echo $PATH /Users/mikewhitlaw/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [Mike-Whitlaws-Computer:~] mikewhitlaw% exit exit [~]$ tester Why can't I be seen? [~]$ which tester no tester in ~/bin /usr/local/bin /bin /sbin /usr/bin /usr/sbin [~]$ ???? |
|
|
|
|
|
#16 | |||||||||||||||||||
|
League Commissioner
Join Date: Jan 2002
Posts: 5,536
|
which is a tcsh builtin, but for bash, which is a C shell script Code:
$ which which /usr/bin/which $ file `which which` /usr/bin/which: C shell script text Code:
% sw_vers ProductName: Mac OS X ProductVersion: 10.2.1 BuildVersion: 6D52 % echo $version tcsh 6.10.00 (Astron) 2000-11-19 (powerpc-apple-darwin) options 8b,nls,dl,al,sm,rh,color
__________________
On a clear disk, you can seek forever. |
|||||||||||||||||||
|
|
|
|
|
#17 | |||||||||||||||||||
|
Site Admin
Join Date: Jan 2002
Location: Montreal
Posts: 32,473
|
bin2
What's going on? You were supposed to be copy & pasting your results directly from the Terminal. But the above seems to show that you aren't doing that. Note the slash in front of bin2 in the 'cp' line. You apparently copied the file to the directory /bin2 which is a subdirectory of /. Yet no such directory exists (usually) and you had created the bin2 directory in your home directory if we believe your prompt. So I guess we shouldn't believe your prompt. It seems that it does not correctly reflect your current directory. Please preface all further results by showing us the results of 'pwd'. And for now, please show us just where this bin2 directory is. |
|||||||||||||||||||
|
|
|
|
|
#18 | |||||||||||||||||||
|
League Commissioner
Join Date: Jan 2002
Posts: 5,536
|
yeah, this has become unsupportable. should we suspect a troll? are we being spoofed? i can no longer look.
__________________
On a clear disk, you can seek forever. |
|||||||||||||||||||
|
|
|
|
|
#19 |
|
Prospect
Join Date: Sep 2002
Posts: 11
|
yes, I had to edit out a couple of little mistakes. Looks like I messed up the edit a little. I apologiize. I AM NOT SPOOFING you. I have never seen anything like this before. I mean, why does it work in bash (sort of) and not tcsh. NO ONE has ever seen this before? Is there some kind of privlege setting? What could possibly do this?
Here I'll do what you asked again, no edits (and a few mistakes), I promise: [Mike-Whitlaws-Computer:~] mikewhitlaw% pwd /Users/mikewhitlaw [Mike-Whitlaws-Computer:~] mikewhitlaw% echo $SHELL /bin/tcsh [Mike-Whitlaws-Computer:~] mikewhitlaw% echo $PATH /Users/mikewhitlaw/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [Mike-Whitlaws-Computer:~] mikewhitlaw% setenv PATH (~/bin2:$PATH) Badly placed ()'s. [Mike-Whitlaws-Computer:~] mikewhitlaw% setenv PATH "~/bin2:$PATH" [Mike-Whitlaws-Computer:~] mikewhitlaw% echo $PATH /Users/mikewhitlaw/bin2:~/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin [Mike-Whitlaws-Computer:~] mikewhitlaw% ls bin2 ls [Mike-Whitlaws-Computer:~] mikewhitlaw% which ls /bin/ls [Mike-Whitlaws-Computer:~] mikewhitlaw% ls Apps Incomplete Music bin Desktop Library Pictures bin2 Documents LimeWireShared Public java HelloThere Movies Sites perltest [Mike-Whitlaws-Computer:~] mikewhitlaw% bash bash-2.05a$ echo $PATH ~/bin2:~/bin:/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin= bash-2.05a$ which ls /bin/ls bash-2.05a$ ls Apps Incomplete Music bin Desktop Library Pictures bin2 Documents LimeWireShared Public java HelloThere Movies Sites perltest bash-2.05a$ ls bin ccrypt tester bash-2.05a$ tester Why can't I be seen? bash-2.05a$ which tester no tester in ~/bin2 ~/bin /usr/local/bin /bin /sbin /usr/bin /usr/sbin= bash-2.05a$ cat bin/tester #!/bin/bash echo "Why can't I be seen?" bash-2.05a$ exit exit [Mike-Whitlaws-Computer:~] mikewhitlaw% sw_vers ProductName: Mac OS X ProductVersion: 10.2.1 BuildVersion: 6D52 [Mike-Whitlaws-Computer:~] mikewhitlaw% echo %version %version [Mike-Whitlaws-Computer:~] mikewhitlaw% echo $version tcsh 6.10.00 (Astron) 2000-11-19 (powerpc-apple-darwin) options 8b,nls,dl,al,sm,rh,color [Mike-Whitlaws-Computer:~] mikewhitlaw% --- bottom line. this is messed up, and by the way, this is the installation right out of the box. Oh, and mervTormel, I couldn't agree with you more about the name, how do I rename the host? Forgive my ignorance, but this IS the beginners forum. |
|
|
|
|
|
#20 | |||||||||||||||||||
|
League Commissioner
Join Date: Jan 2002
Posts: 5,536
|
so it is. and you're doing quite well, actually. name your rig: system preferences [ Sharing ] pane: computer name: [ catbox ] rendezvous name: [ catbox ] ---------------- re: your dang-puzzling tcsh shell path defiance type thingy, durndest thing i've seen today. would you consider allowing someone to remote connect to diagnose? i'd like to know what the poop is going on. |
|||||||||||||||||||
|
|
|
![]() |
|
|