Home > Blockchain >  after running a .sh file go back to the prompt i was before
after running a .sh file go back to the prompt i was before

Time:03-10

example.sh:


x=0
while true
do
  x=$(expr $x   1)
   clear    #to print no. @ same location
  printf "\n\n     $x"|figlet -f block
  sleep 1;

done

Like, htop/cmatrix/vim/nano/bashtop,etc...
After running it i have to get back to the last prompt,
not like, cat/find/,etc...



closest solution had come up with is to, run script inside a tmux session



what i mant was, i dont want to lose my command outputs i ran before,

like nano/vim/cmatrix it clears the screen then run it, then when we exit out of it like, ^c/q , we are back where we left the prompt, with the history[last ran commands and outputs]

is there a command which does this?




┌──(kali㉿kali)-[~]
└─$ vi

┌──(kali㉿kali)-[~]
└─$ nano

┌──(kali㉿kali)-[~]
└─$ cat copy
file contents

┌──(kali㉿kali)-[~]
└─$

Here, i opened nano, i opened vim, but u cant see my inside vim or nano , but thats not the case of cat, it just print it on the same session , with vim/nano/htop terminal is clean, thats not the case in sed/cat/ps
I wanted to create a script like that,[which will not effect the terminal session(like which run in another dimention)],

I tried reading the [bashtop][1] source code, which also have same behavior, but i couldnt find the code/command which does it

CodePudding user response:

vim and less and many other tools access the terminal's alternate screen and then restore the original screen when they are done. You can use tput to access the alternate screen from your shell script:

#!/bin/sh

tput smcup  # begin using the alternate screen

# ...

tput rmcup  # stop using alternate screen (restore terminal to original state)
  • Related