Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I'm not a newbie, exactly, but this is a very simple problem for which I haven't been able to google a solution. I think this is the right forum for it.
I have a csh script in which I'm trying to perform some very basic tasks with a set of files, and the first command is setting the directory environment variable. I'd like to just use "pwd", but this does not work. The problem can be illustrated with the simplest of scripts:
#!/bin/csh
setenv DIR `pwd`
echo 'the current directory is' $DIR
end
The pwd command invariably prints out my home directory, not the current directory. It's a minor problem - I can always skirt the issue by just writing out the full directory path, but I'd like to not have to redo this every time I want to modify the script in a different directory. And I don't understand why pwd doesn't work.
I'm running Mac OS X Mountain Lion (version 10.8.3). The default shell for Mac is bash, although I typically switch to tcsh whenever I open a terminal. As far as I know, this doesn't have anything to do with my problem, though.
$ pwd
/home/user/temp
$ cat script.sh
#!/bin/bash
export DIR=`pwd`
echo "The current directory is $DIR"
$ cat script.csh
#!/bin/csh
setenv DIR `pwd`
echo 'The current directory is' $DIR
$ ./script.sh
The current directory is /home/user/temp
$ ./script.csh
The current directory is /home/user/temp
chrism01, I use (t)csh primarily because I know it best. My advisor recommended it when I started research with him a year and a half ago, and a lot of shell scripts on my work's computer system use csh. On my work system, this pwd issue doesn't happen; it's only on my home computer. Anyways, I've definitely seen criticisms of csh before, similar to those in your link.
If you have to deal with it for external reasons, then at least be sure you understand its weaknesses. But I'd really recommend not using it at all in your own scripts, if at all possible.
Take a bit of time to learn bash, and you'll probably never want to go back. The Bash Guide is a very good place to start.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.