7

My lab uses csh scripts to run jobs. It is usually difficult for me to debug a shell script, so I'm wondering if there is a csh debugger I can use.

I know there are some flags like -x or -v that can help, but because the script is kind of long, it would be better if I can set breakpoints on it. As I searched online, I found there is a debugger specifically for bash scripts that supports breakpoints, but I couldn't find one for csh scripts. Will the bash debugger work? Is there a csh-specific debugger I can use?

Michael Mrozek
  • 91,316
  • 38
  • 238
  • 232
Cassie
  • 221
  • 1
  • 3
  • 6

2 Answers2

6

This page lists two useful csh switches: -v to show each command before variables are substituted, and -x to show them afterwards.

Michael Mrozek
  • 91,316
  • 38
  • 238
  • 232
mic4ael
  • 161
  • 3
2

In addition to -v and -x, you can stop execution for an arbitrary amount of time in csh by assigning $< to a variable that you aren't using

set unused_var = $<

This will block until you've read a line from /dev/tty, so it works even if your script is in a pipeline.

This gives you the ability to run commands and "look around" before the script is done executing.

Greg Nisbet
  • 2,996
  • 2
  • 25
  • 42