q我有这个 shell 脚本,它应该在我按下按钮时正常运行并停止:
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。
有什么建议可以解决这个问题吗?
我刚刚在我的 Ubuntu 16.04 系统上进行了尝试,它工作正常。
我发现,如果您使用泛型
sh
而不是bash
,则无法发出错误确保您的脚本以
#!/usr/bin/env bash
or#!/bin/bash
和not#!/bin/sh
开头。