sách gpt4 ăn đã đi

Vô hiệu hóa đầu vào của người dùng trong vòng lặp vô hạn trong bash

In lại Tác giả: Walker 123 Thời gian cập nhật: 29-11-2023 08:56:18 25 4
mua khóa gpt4 giày nike

Tôi có tập lệnh bash này về cơ bản khởi động máy chủ web và selen với chỉ báo tiến trình. Vì máy chủ Selenium cần một chút thời gian để khởi động nên tôi đang kiểm tra trạng thái theo vòng lặp vô hạn.

Vấn đề là trong khi chờ nó khởi động, tôi vô tình nhấn một phím và nó hiển thị trên màn hình và nếu vòng lặp kết thúc (hết thời gian) thì nó cũng hiển thị trong dấu nhắc lệnh.

Tôi muốn tắt tất cả đầu vào của người dùng (tất nhiên ngoại trừ các phím điều khiển) trong vòng lặp:

bắt đầu_selenium() {
echo -n "Đang khởi động máy chủ selenium"
java -jar ${selenium_jar} &> $selenium_log &

# chờ máy chủ Selenium khởi động! (thêm -v để có đầu ra chi tiết)
tôi = 0
trong khi ! nc -z localhost 4444; làm
ngủ 1
tiếng vang -n "."
((tôi++))
nếu [ $i -gt 20 ]; thì
tiếng vọng
echo -e $bg_red$bold"Kết nối máy chủ Selenium đã hết thời gian"$reset
lối ra 1

xong
}

câu trả lời hay nhất

cuộc gọi stty từ http://www.unix.com/shell-programming-and-scripting/84624-nonblocking-io-bash-scripts.html

Cái này vẫn tuân theo Ctrl-C nhưng không hiển thị đầu vào và sử dụng nó nên nó không được để lại trong shell.

#!/bin/bash

ẩnđầu vào()
{
nếu [ -t 0 ]; thì
stty -echo -icanon thời gian 0 phút 0

}

dọn dẹp()
{
nếu [ -t 0 ]; thì
thật là sáng suốt

}

dọn dẹp bẫy EXIT
bẫy ẩnđầu vàoTIẾP TỤC
ẩnđầu vào
n=0
trong khi kiểm tra $n -lt 10
LÀM
đọc dòng
ngủ 1
tiếng vang -n "."
n=$[n+1]
xong
tiếng vọng

Về bash - vô hiệu hóa đầu vào của người dùng trong vòng lặp vô hạn trong bash, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/26137110/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress