Running a Script- and debugging.

Nifty Fedora Mitch niftyfedora at niftyegg.com
Wed Sep 23 04:11:02 UTC 2009


On Tue, Sep 22, 2009 at 05:17:34PM -0430, Patrick O'Callaghan wrote:
> On Tue, 2009-09-22 at 15:46 -0400, Jim wrote:
> > Could someone give me a Ideal as to this part of a script would
> > hangup 
> > script.
> > In FC11.
> > 
> > The hangup stops at;
> > 
> > cd 'dirname $0'
> 
> $0 is usually the name of the script itself, so 'dirname $0' is the
> directory the script lives in. Changing to that directory shouldn't
> normally cause a hang, unless for example the directory is NFS-mounted,
> but without more information this is pure speculation.
> 

Put some debugging in the script it is easy to make a copy.
We do not know what $0 is.

We could have changed directory as expected and the
next command is hanging ya out to dry.  What is
the next command.  Is there a "trap" that has taken
the script to someplace unexpected.

Also 'odd' things can happen if '.' and strange places
are in your PATH.   Are you running it as root via "su",
as root via "su -", as root via "sudo" or as yourself.

What is the first line.  Is this a sh, bash or csh script or something else.
Some flags may be passed,   

To the copy add simple commands to get you some additional
information.

Ideas....
$ cat bin/flubber
#!/bin/bash
pwd
echo foo
echo $0
dirname $0
cd 'dirname $0'
pwd

=====
$ bin/flubber
/home/mydir
foo
bin/flubber
bin
bin/flubber: line 6: cd: dirname $0: No such file or directory
/home/mydir

=====
If it "hangs" you might run it with "strace -f -o /tmp/tracelogfile script"

=====
I do recall a bug fix going into bash that fixes a standards correctness
problem but has side effects because is it not "bug" compatable.
You can grab an OLDer version of bash and install it in a SAFE place
with rpm and try it.  I just do not recall the details and they do 
not matter -- it is easy to test for.  It is also easy to look at the 
change log for the bash rpm and read the bug reports.  Use rpm or yum, 
Example using rpm:
 # which bash
 # rpm -qf /bin/bash
 # rpm -qi bash
 # rpm -q --changelog bash



-- 
	T o m  M i t c h e l l 
	Found me a new hat, now what?




More information about the fedora-list mailing list