Discussion: Simple bash script
Afficher un message
Vieux 31/05/2007, 22h02   #4
Chris F.A. Johnson
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut 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
  Réponse avec citation
 
Page generated in 0,04831 seconds with 9 queries