Re: Simple bash script
On 2007-05-31, Deniz Dogan wrote:
> Hello.
> I am very new to bash scripting and was hoping you could me out a
> bit. I am trying to create a bash script (but I'd prefer an alias) which
> changes the directory and then lists the files in that direcotry. This
> is what I came up with:
>
> #!/bin/sh
> cd $1;
> ls;
>
> This does not work and I believe this is due to the script starting a
> new "sh" shell and then changing the directory in THAT shell. How should
> I do this?
A script is executed in a new process, and it cannot change the
environment of the calling shell -- unless you source it:
.. /path/to/script
What you want is a shell function. Place this in your ~/.bashrc:
cdls() ## use whatever name you like
{
builtin cd "$1" &&
ls || printf "Could not change directory to %s\n" "$1"
}
--
Chris F.A. Johnson, author <http://cfaj.freeshell.org/shell/>
Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
===== My code in this post, if any, assumes the POSIX locale
===== and is released under the GNU General Public Licence
|