I use

sh -xv my_script.sh

to debug the /bin/sh script. How do I debug /bin/bash scripts?

I am getting the following error and I need to know the line that needs to edit.

# ./batch_master.sh

'@'' (using password: NO)user 'companycuser

Doesn't this work?

bash -x ./batchmaster_sh
| improve this answer | |
  • It does work. But shows a lot of junk. I want to know only the mysql command that does not work. I do not see that anywhere in the output. The output is much lengthy than expected. – shantanuo Sep 2 '11 at 10:01
  • Well... what happens if you grep ./batch_master.sh or grep mysql ./batch_master.sh :) – Janne Pikkarainen Sep 2 '11 at 10:35

Edit the script, add a -x option to the shell command line like:

#!/bin/sh -x


#!/bin/bash -x

It will print all executed commands and you can see what is done after what.

| improve this answer | |
  • Thanks for your inputs. The problem got solved after running dos2unix command on the properties file. – shantanuo Sep 2 '11 at 10:18

There has been a debugger for bash around for a since the turn of the century. See http://bashdb.sourceforge.net/

If you are going to use set -x tracing I recommend setting PS4 to:

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.