【发布时间】:2014-02-23 22:30:38
【问题描述】:
我有这个脚本 start.sh
#!/bin/bash
while[1]
do
read -sn3 key
if [$key=="\033[[A"]
then
./test1
else
./test2
fi
done
我想设置一个永久循环检查是否按下 F1 键。如果按下执行 test1 否则 test2。我做了 start.sh 并在后台运行,以便其他程序可以运行。
我有错误 while [1] 命令未找到 意外标记“do”附近的语法错误 [f==\033]: 找不到命令
还有这个读取命令在哪里?我输入了哪个读,没找到。
另外,如果尝试 ./start.sh & 它会给出完全不同的行为。我输入一个密钥,它说找不到密钥。我虽然只是在后台运行脚本
【问题讨论】:
-
你的shebang坏了,你是说
#!/bin/bash吗?如果您使用 bash,请阅读help while以了解正确的语法或查看 stackoverflow.com/questions/10797835/while-vs-while-true -
一定要F1吗?使用 y/n、1/2、a/b 等非转义键会更容易
-
是的,如果被终端捕获,F1 将不起作用。例如对于 XFCE 终端,F!带来帮助。如果是这种情况,您必须禁用它,以便将其传递给
pts设备。