>if (( debug )) >then > _debug() > { > "$@" > # I do question whether this is a viable construct, versus > # eval "$@" > } >else > _debug() > { > : > } >fi > >2. The other thing is that instead of > >#!/bin/bash >debug=true > >at the beginning of the file, you can just say: > >#! /bin/bash >: ${debug:=0} # or false or whatever feels good. > >Then when you want to run the program with debug turned on, just say: > >debug=1 prog with various args
OK. I've done something similar to the above, however... If the following command gets passed through "eval" (as noted above), The backslash in ' printf "\n" ' gets dropped and the 'n' is printed out. _debug printf "size=%s\n" ${size} As such, no newline is printed to stdout. If I omit the "eval" command and just use ${@} (or $"@", "$@", ...) by itself, then the printf interprets the newline escape (ie. '\n') just fine. -- Roger http://rogerx.freeshell.org/