我这里有这组示例来测试用户在按 Enter 后是否键入了任何数据。
echo -n "Type a digit or a letter > "
read character
blank=""
if [ "$character" != "$blank"]; then
echo "You typed something"
else
echo "Enter something"
fi
上面的代码应该测试变量是否包含任何内容,但我似乎无法让它工作,有什么帮助吗?非常感激。
答案1
您可以简单地使用[ "$character" ]
来测试 string 是否非零,这相当于较长的 form [ -n "$character" ]
。或者[ -z $character ]
测试字符串是否为零。
然而,很多时候,在交互式脚本中,真正需要的是在用户可以覆盖的变量中设置一些默认值。如果这是您的意图,那么您可以避免测试并使用参数扩展:
read character
echo "character is set to ${character:-default}"