簡體   English   中英

如何防止用戶使用 ctrl-c 停止腳本?

[英]How to prevent a user from using ctrl-c to stop a script?

我在.bash_profile加載了一個腳本,每當用戶打開終端窗口時,這個腳本都會要求輸入正確的密碼。 如果用戶輸入錯誤的代碼,腳本將運行exit以停止當前終端。

if [ $code = "980425" ]; then
    echo hello
else
    exit
fi

但是我意識到用戶總是可以使用ctrl -c來停止腳本並進入終端。 如何避免這種情況?

你總是可以捕獲SIGINT

trap 'echo got SIGINT' SIGINT

完成后,再次重新安裝默認處理程序

trap SIGINT

有關詳細信息,請參閱POSIX 規范以獲取陷阱 這適用於所有 Bourne shell,而不僅僅是 bash。

您可以使用:

trap '' 2 
commands
trap 2

這會禁用信號 2(控制 c),然后在命令運行后重新啟用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM