shell-trap-屏蔽信号&锁定终端屏幕

trap可以屏蔽信号
详细情况:
http://man.linuxde.net/trap

#!/bin/bash
trap "" 2

n=1
while (( $n<=100 ))
do
        echo "number is $n"
        sleep 1s
        let n++
done
~          

运行上面脚本,ctrl+c无法终止。(可以后台运行,然后kill进程)
下面是一个扩展,可以锁定终端屏幕

#!/bin/bash
#lock the terminal
#屏蔽终止信号,按ctrl+c会执行lock_nice函数
trap "lock_nice" 2 3 15
#tab键上面的反引号
TTY=`tty`

lock_nice()
{
        echo -e "\r Nice.lock nice. the terminal stays locked ! \r"
}

SAVEDSTTY=`stty -g`
#不显示输入字符
stty -echo
echo -n -e "Enter you passwd to lock $TTY :"
read PASSWD
echo -e "\r"

while :
do
        #read form tty only !!
        echo -e -n  "input passwd for unlock:"
        read RESPONSE < $TTY
        echo -e "\r"
if [ "$RESPONSE" = "$PASSWD" ];
then
        echo   " unlocking..."
        break
fi

        # wrong passwd. return
       lock_nice
       echo -e " wrong passwd and terminal is locked ! \r"
done
#以终端可读的格式显示
stty $SAVEDSTTY

也可以固定密码

#!/bin/bash
#lock the terminal
trap "lock_nice" 2 3 15

TTY=`tty`

lock_nice()
{
        echo -e "\r Nice.lock nice. the terminal stays locked ! \r"
}

SAVEDSTTY=`stty -g`
PASSWD=qwe

while :
do
        #read form tty only !!
        echo -e -n  "input passwd for unlock:"
        read RESPONSE < $TTY
        echo -e "\r"
if [ "$RESPONSE" = "$PASSWD" ];
then
        echo   " unlocking..."
        break
fi

        # wrong passwd. return
	lock_nice
	echo -e " wrong passwd and terminal is locked ! \r"
	done
#以终端可读的格式显示
stty $SAVEDSTTY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值