在 运行 个 .sh 文件后返回到我之前的提示
after running a .sh file go back to the prompt i was before
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
喜欢,htop/cmatrix/vim/nano/bashtop,等...
在 运行 之后,我必须返回到最后一个提示,
不喜欢,cat/find/等...
最接近的解决方案是,运行 tmux 会话中的脚本
我想要的是,我不想失去我之前 运行 的命令输出,
就像 nano/vim/cmatrix 它清除屏幕然后 运行 它,然后当我们退出它时,就像 ^c/q ,我们回到了我们离开提示的地方,与历史[最后 运行 个命令和输出]
是否有 命令 执行此操作?
┌──(kali㉿kali)-[~]
└─$ vi
┌──(kali㉿kali)-[~]
└─$ nano
┌──(kali㉿kali)-[~]
└─$ cat copy
file contents
┌──(kali㉿kali)-[~]
└─$
在这里,我打开了 nano,我打开了 vim,但是你看不到我的内部 vim 或 nano,但 cat 不是这种情况,它只是在同一个会话中打印它,vim/nano/htop 终端是干净的,在 sed/cat/ps 中不是这样
我想创建一个这样的脚本,[这不会影响终端会话(例如 运行 在另一个维度)],
我试着阅读 [bashtop][1] 源代码,它也有相同的行为,但我找不到 code/command 的代码
vim
和 less
以及许多其他工具访问终端的备用屏幕,然后在完成后恢复原始屏幕。您可以使用 tput
从 shell 脚本访问备用屏幕:
#!/bin/sh
tput smcup # begin using the alternate screen
# ...
tput rmcup # stop using alternate screen (restore terminal to original state)
请注意,您不想在脚本结束时留在备用屏幕中,因此您可能更愿意这样做:
#!/bin/sh
trap 'tput rmcup' 0
tput smcup
在 bashtop 中,他们在以前的更新中使用了 tput,然后将其更改为,
#!/bin/sh
echo -en '3[?1049h' #* Switch to alternate screen
# codes to run inside
echo -en '3[?1049l' #* Switch to normal screen
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
喜欢,htop/cmatrix/vim/nano/bashtop,等...
在 运行 之后,我必须返回到最后一个提示,
不喜欢,cat/find/等...
最接近的解决方案是,运行 tmux 会话中的脚本
我想要的是,我不想失去我之前 运行 的命令输出,
就像 nano/vim/cmatrix 它清除屏幕然后 运行 它,然后当我们退出它时,就像 ^c/q ,我们回到了我们离开提示的地方,与历史[最后 运行 个命令和输出]
是否有 命令 执行此操作?
┌──(kali㉿kali)-[~]
└─$ vi
┌──(kali㉿kali)-[~]
└─$ nano
┌──(kali㉿kali)-[~]
└─$ cat copy
file contents
┌──(kali㉿kali)-[~]
└─$
在这里,我打开了 nano,我打开了 vim,但是你看不到我的内部 vim 或 nano,但 cat 不是这种情况,它只是在同一个会话中打印它,vim/nano/htop 终端是干净的,在 sed/cat/ps 中不是这样
我想创建一个这样的脚本,[这不会影响终端会话(例如 运行 在另一个维度)],
我试着阅读 [bashtop][1] 源代码,它也有相同的行为,但我找不到 code/command 的代码
vim
和 less
以及许多其他工具访问终端的备用屏幕,然后在完成后恢复原始屏幕。您可以使用 tput
从 shell 脚本访问备用屏幕:
#!/bin/sh
tput smcup # begin using the alternate screen
# ...
tput rmcup # stop using alternate screen (restore terminal to original state)
请注意,您不想在脚本结束时留在备用屏幕中,因此您可能更愿意这样做:
#!/bin/sh
trap 'tput rmcup' 0
tput smcup
在 bashtop 中,他们在以前的更新中使用了 tput,然后将其更改为,
#!/bin/sh
echo -en '3[?1049h' #* Switch to alternate screen
# codes to run inside
echo -en '3[?1049l' #* Switch to normal screen