使用read命令测试用户输入的bash脚本

时间:2015-04-23 20:32:35

标签: bash

我尝试做一些非常简单的事情:让自己选择在开机时运行的内容。这是在Raspberry Pi上,所以有时它会无头,有时它不会。我认为一个简单的方法就是在启动时运行一个小脚本(甚至不知道这是否可行 - 还没有达到目前为止),或者让我捣乱键盘并启动GUI或者只是超时并启动一个python脚本。但是,是的,我没有完成这个简单的任务。无论我尝试什么,if语句总是评估为真,我已经尝试了很多很多东西。这是我想要使用的迭代......

如果我让它超时,read命令的返回值应该大于128.如果我按某个东西,返回值应为零。所以......

#!/bin/bash

# this gives the user the chance to startx or leave it alone and let camera.py run
# we will give the user 5 seconds to make a choice

/bin/echo "Hit any key to startx, otherwise I will start camera.py."

if [[ "$(read -t 5 -n 1)" -eq 0 ]]; then
    /bin/echo "You want to startx!"
else
    /bin/echo "You want to start the python script!"
fi

我得到的结果是它总是评估为真。我做错了什么?

1 个答案:

答案 0 :(得分:1)

替换:

child_element = angular.element(child_element);

使用:

if [[ "$(read -t 5 -n 1)" -eq 0 ]]; then

如果键入字符,if read -t 5 -n 1; then 将返回并退出零码(true)。如果read到达文件结尾或超时,则返回大于零的退出代码(false)。 read响应退出代码。不需要任何测试(if)命令。