通过按下按钮来停止 shell 脚本

通过按下按钮来停止 shell 脚本

我有这个 shell 脚本,它应该正常运行,并在我按下q按钮时停止:

while true; do
    echo "hello"
    read -t 0.25 -N 1 input
    if [[ $input = "q" ]] || [[ $input = "Q" ]]; then
        break 
    fi
done

当我运行它时,我得到了这个持续显示的输出:

hello
script.sh: 3: read: Illegal option -t
script.sh: 4: script.sh: [[: not found
script.sh: 4: script.sh: [[: not found

但是当我按下q按钮时,它不会停止。它一直运行,直到我使用 Ctrl+停止它c
有什么建议可以解决这个问题吗?

答案1

我刚刚在我的 Ubuntu 16.04 系统上尝试过,它运行正常。

我发现,如果你使用泛型sh代替bash,它不会起作用并给出错误

read: Illegal option -t

确保您的脚本以#!/usr/bin/env bash#!/bin/bash 和开头不是 #!/bin/sh

相关内容