Kai
Kai

Reputation: 4027

How to view the command executed in a script as it is executed?

I have a bash script I've written to automate something tedious, so I got the command looking right in echo, but when I run it, it doesn't work. This is what I'm doing:

CMD='custom_script update --flag=value --comment="testing"'
echo -e "Running $CMD"
$CMD

The echo shows: custom_script update --flag=value --comment="testing"

which is correct, but that is not what is actually run with the $CMD line (I know because if I copy and paste the output from echo, it works, but the error message after running in the script suggests the quoting is off).

I think I can figure this out if I can see the command run by $CMD, but I don't know how to do that.

Upvotes: 0

Views: 106

Answers (2)

Kai
Kai

Reputation: 4027

Looks like

eval $CMD

is what I needed.

Upvotes: 0

horsh
horsh

Reputation: 2779

Run it like

bash -x script.sh

or modify the shebang like

#!/bin/bash -x

Upvotes: 3

Related Questions