在浏览我的主目录的隐藏文件时,我发现.bash_logout
. 我浏览了文件中的这些内容
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
Run Code Online (Sandbox Code Playgroud)
我对 BASH 不太擅长,我要求这样做,有人可以为我解释一下。与 SHLVL 有什么关系?
谢谢你。
该脚本 -.bash_logout
在登录 shell退出时由 bash 执行,并且您问题中的代码旨在清除屏幕以在离开控制台时增加隐私。
SHLVL
是一个来自“SHell LeVeL”的环境变量,可让您跟踪当前 shell 的深度。在您的顶级 shell 中,的值为$SHLVL
1。在第一个子 shell 中,它的值为2;在子子外壳中,它是 3;等等。所以 SHLVL 表示用户有多少壳深。如果级别为 2,则必须键入exit
,然后logout
退出。
所以,如果"$SHLVL" = 1
ie 如果你在顶级 shell 中,那么......
[ -x /usr/bin/clear_console ]
是另一个测试,意思是这样的:测试文件是否/usr/bin/clear_console
存在并且是可执行的。
因为&&
这个命令:/usr/bin/clear_console -q
只有在[ -x /usr/bin/clear_console ]
成功成功时才执行。
最后:什么/usr/bin/clear_console
意思?来自man clear_console
:
如果可能,clear_console 会清除您的控制台。它看起来在 终端类型的环境,然后在 terminfo 数据库中 弄清楚如何清除屏幕。要清除缓冲区,然后 将前台虚拟终端更改为另一个终端,然后 回到原来的终端。
clear_console
非常接近clear
可以在任何终端/控制台中使用的命令。
归档时间: |
|
查看次数: |
2566 次 |
最近记录: |