0

I am writing a a bash script echoo.sh with the intention of echoing commands before they are executed. I source the script inside .bashrc. But it does not affect other bash scripts that I run. Below is the code I have so far:

echoo.sh

#!/usr/bin/env bash
shopt -s extdebug
get_hacked () {
    [ -n "$COMP_LINE" ] && return  # not needed for completion
    [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # not needed for prompt
    local this_command=$BASH_COMMAND;
    echo $this_command;
}
trap 'get_hacked' DEBUG

When I open a shell and run any command - It works. But for stuff in a script file it doesn't work.

SOME FURTHER TRIES:

  1. I tried sourcing the .bashrc file within the test script - it didn't work.
  2. I sourced echoo.sh inside of the test script and it worked.

So, I am trying to understand

  1. Why doesn't it work if I just source my script in .bashrc for stuff that runs in scripts?
  2. Why doesn't further try #1 work when #2 does.

And, finally, what can I do such that I don't have to source echoo.sh in all script files for this to work. Can I source my script in one place and change some setting such that it works in all scenarios.

1
  • ]shopt? With the bracket?
    – ilkkachu
    Commented Feb 6, 2018 at 19:49

1 Answer 1

0

I tested all your tries, and it worked on archlinux, bash version 4.4.12. But I had to open a new interactive shell, so the new ~/.bashrc could be sourced.

For non-interactive shells you could also try to setup an ~/.bashenvrc and set export BASH_ENV=$(realpath ~/.bashenvrc) in ~/.bashrc.

Now the script ~/bashenvrc will be sourced every time you start an non-interactive shell.

I tested this also with daemonize 1.7.7-1

cheers

3
  • Hey.. Thanks for trying it out.. I know it works for interactive shells. I am trying to get to work on non interactive shells as well
    – Sam Thomas
    Commented Feb 7, 2018 at 0:12
  • Hey.. no problem. I will need this too. So I edited my answer, please try my suggestion.
    – domson
    Commented Feb 7, 2018 at 9:22
  • Can you have a look at this ??
    – Sam Thomas
    Commented Feb 7, 2018 at 21:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .