watch by default runs the command through a shell, so if
example.sh unconditionally writes to a file, you can have it run the script and then
cat the output file:
watch 'example.sh; cat tmp_output.txt'
But of course, it might in general be more flexible to have the script just print to stdout, so you could view the output directly or redirect it to a file as desired.
The watch command needs to used within the bash script.
I'm not exactly sure what you mean by this.
watch doesn't really lend itself that well to non-interactive use, given that it runs indefinitely and clears the screen during every execution etc. Also, running
watch on a script from the script itself is a bit circular.
Of course you could do something similar just within the script:
while true; do
# do some work
# write to tmp_output.txt etc.
cat tmp_output.txt # display it
sleep 2 # sleep and repeat