我有这个 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
。