[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bash: pipe once more



On 2008-07-13T20:55:42+0200, Stefan Schmidt wrote:
> I want to change the working directory and if there is an error (e.g. 
> the directory doesn't exist) I want that to be logged to a file and 
> printed on stdout. With the above command that doesn't work since the 
> working directory is the same as before execution of the command.

cd does not seem to do its thing when stdout is redirected to a pipe, 
however it does work with a (temporary) file:

cd bad > cd.out 2>&1
cat cd.out
rm cd.out

Another way to go about this is to just do the cd, and write your own 
error message if OLDPWD and PWD are the same.

Finally, you could check for the error conditions before doing the cd:

if [ -d $dir -a -x $dir ];
then
	echo cannot cd into $dir
else
	cd $dir
fi


/Allan


Reply to: