准备
•操作系统 : 我这里是ElementaryOS虚拟机 + XShell 远程登录工具
•Shell语言 : 我使用的是默认的Bash Shell
•其他小工具 :
◦fortune:系统随机的从语库中选出一句英文成语。
◦cowsay : 在终端界面上显示出一个奶牛的语句框,配合管道连接上fortune,效果完美!
代码
#!/bin/bash #scriptname:locktty #writed by :Marksinoberg #description : just for protecting our message when we leave away. And we can set the password every time. reset;clear #清除屏幕 info="Please input the password you will use later!" cowsay $info read mypassword echo "Screen will locked in 7 seconds!" sleep 7 clear #!/bin/bash #scriptname:locktty #writed by :javalee #script start... reset;clear #清除屏幕 info="Please input the password you will use later!" cowsay $info read mypassword echo "Screen will locked in 7 seconds!" sleep 7 clear #加上这个倒记时的小东东,;) trapper () { #建立个函数 trap ' ' 2 3 20 #忽略CTRL+C CTRL+\ CTRL+Z信号 } while : #进入死循环 do trapper #调用函数 printf "\n\n\n\n\n\n\n\n\t\t\tPlease enter unlock code:" | cowsay stty -echo #屏蔽输入的字符 read input case $input in $mypassword) printf "\t\t Hello $USER,Today is $(date +%T)\n" stty echo break ;; #输入正确,挑出循环回到命令行 *)echo "Do not check my files,please! See as follows:" sleep 3 clear continue ;; #否则,继续循环 esac done
运行演示
程序运行开始:
mark@mark:~/temp/myscripts$ ./lockscreen.sh
______________________________________
/ Please input the password you \
\ will use later! /
————————————–
\ ^__^
\ (oo)\_______
(__)\ )\/\
||—-w |
|| ||
123
Screen will locked in 7 seconds!
由于静态文本没办法显示程序执行过程中的动态效果,所以直接看解锁界面吧
当我们输入不正确的密码的时候,系统会提示输入错误,以及一个幽默的“警告”
___________________________
/ \
\ Please enter unlock code: /
—————————
\ ^__^
\ (oo)\_______
(__)\ )\/\
||—-w |
|| ||
Do not check my files,please! See as follows:
_________________________________________
/ Q: Why is it that the more accuracy you \
| demand from an interpolation |
| |
| function, the more expensive it becomes |
| to compute? A: That’s the Law of Spline |
\ Demand. /
—————————————–
\ ^__^
\ (oo)\_______
(__)\ )\/\
||—-w |
|| ||
当我们密码输入正确的时候,如下:
___________________________
/ \
\ Please enter unlock code: /
—————————
\ ^__^
\ (oo)\_______
(__)\ )\/\
||—-w |
|| ||
Hello mark,Today is 06:35:05
结语
代码还是很简单的,仅仅用到了shell脚本语法的几个小命令。希望我这个脚本能抛砖引玉,打开你的思路,做出更好的锁屏小脚本!