8

I would like to start screen detached session, but I want to evaluate some bash. It seems screen only supports an executable and binary. I want do do some magic like:

screen -d -m script.sh 2>&1 | tee logfile.log

but this apparently does not work. Quoting does not help here. The only idea I have is to create a wrapper script that will do this redirection and then to call it directly, like:

screen -d -m wrapper_script.sh

Any other ideas? Thanks.

8

You could have screen run a bash shell, which in turn runs your script.

I just tested this:

screen -d -m bash -c 'vmstat 5 3 2>&1 | tee logfile.log'

which gave me this:

kenny@t520:~$ cat logfile.log 
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0      0 5864764 103072 884512    0    0    66    36 1236 1818 17  6 77  0
 0  0      0 5864252 103072 884512    0    0     0     0  311  574  1  1 98  0
 1  0      0 5861532 103080 884512    0    0     0     4 1244 2302  4  2 94  0

So this should work too:

screen -d -m bash -c 'script.sh 2>&1 | tee logfile.log'
| improve this answer | |
  • Oh, I was trying this but had a typo! Many thanks. – lzap Jul 27 '12 at 7:09
4

Have you tried specifying the -L screen option to write to a log?

You can also specify the name of the log using the file ~/.screenrc - here is the contents of mine as an example:

defutf8 on
deflog on
logfile /home/me/convert.log
multiuser on
| improve this answer | |
  • Thanks, that should do it too! Upvoting, but Kennys answer is more generic. THANK YOU. – lzap Jul 27 '12 at 7:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.