in reply to getting a problem when I use which command with system function

Look around in your dotfiles (or the dotfiles of the user running the script), like .profile, .bashrc, .cshrc, etc. I bet one of these is running machtype, and it's not in the path or is an undefined shell function.

Update: Fixed forrmatting error.

  • Comment on Re: getting a problem when I use which command with system function

Replies are listed 'Best First'.
Re^2: getting a problem when I use which command with system function
by greatshots (Pilgrim) on Nov 03, 2006 at 07:40 UTC
    thanks a lot sgifford.
    #setenv MACH `machtype`
    found in $HOME/.cshrc. I commented this line. after that I got the expected behaviour from my perlscript.

      I actually ran into a problem with 'which' and a '.cshrc' file a week or two ago when doing some shell scripting on MacOS X

      In my case, it was much more subtle, as which was written in csh, but that wasn't the shell I was using. So when it called the .cshrc, it overwrote PATH, and would report programs that weren't in my path when I was using bash.

      (of course, which is a builtin under csh, so the odds of you calling the script under csh in normal use should be non-existant)

      Oddly enough, there's a note about 'DO NOT USE "csh -f"' immediately after the shebang line, which fixes the problem, but I have no idea what other implications it might have.