equivalent "echo on" for linux?

44,199

Solution 1

Use bash -v.

This is the script:

#!/bin/bash -v

echo "Hello, World" | sed 's|Hello|Goodbye|'

echo "Done."

This is the output:

#!/bin/bash -v

echo "Hello, World" | sed 's|Hello|Goodbye|'
Goodbye, World

echo "Done."
Done.

Unfortunately, there is no special marker like PS4 for printing expanded commands. You could combine both though to quickly identify commands:

#!/bin/bash -vx

echo "Hello, World" | sed 's|Hello|Goodbye|'
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World

echo "Done."
+ echo Done.
Done.

Solution 2

set -x is other way of doing it.

$ cat a.sh
#!/bin/bash

set -x
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."

Output will be:

sh a.sh
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
+ echo Done.
Done.

Solution 3

set -x is an equivalent of "echo on"

set +x is an equivalent of "echo off"

Share:
44,199

Related videos on Youtube

Putnik
Author by

Putnik

Updated on September 18, 2022

Comments

  • Putnik
    Putnik over 1 year

    How can I get to stdout all commands that run in bash script?

    That is output must contain commands output AND commands themselves.

    I found

    #!/bin/bash -x
    

    but this is not exactly the same because instead of

     mysql -v dbname < dump.sql | grep "CREATE TABLE"
    

    it shows

    + mysql -v dbname
    + grep 'CREATE TABLE'
    
  • HikeMike
    HikeMike over 12 years
    Which is kind of what the OP dismissed as useless right in his question...
  • Putnik
    Putnik about 12 years
    @Ashok Could you please explain? I can't see the difference: here p.s.: GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu) Ubuntu 10.04.3
  • HikeMike
    HikeMike about 12 years
    @Putnik It's the same basic thing, but you can set -x anywhere in the script, and even deactivate it again. So if you only want it on the echo "Done" line, put set -x just before that one.
  • studioj
    studioj over 2 years
    landed here through a search engine, found your answer helpful. Thx
  • studioj
    studioj over 2 years
    landed here through a search engine, found your answer helpful. Thx