我写了一个简单的脚本来检查一个数字是否在 20 到 30 之间:
while true
do
echo 'enter a number between 20 and 30'
read e
if [ $e -lt 30] && [$e -gt 20 ]
then
echo ' you entered desired number' && break
fi
done
但它有如下错误:
第 5 行:[:缺少 `]'
我哪里做错了?
我写了一个简单的脚本来检查一个数字是否在 20 到 30 之间:
while true
do
echo 'enter a number between 20 and 30'
read e
if [ $e -lt 30] && [$e -gt 20 ]
then
echo ' you entered desired number' && break
fi
done
但它有如下错误:
第 5 行:[:缺少 `]'
我哪里做错了?
你需要一个空间:
if [ $e -lt 30 ] && [ $e -gt 20 ]
^ ^
| |
| |
---------------------
始终尝试在调试模式下运行 bash 脚本。要在调试模式下运行脚本,只需在命令提示符下执行以下操作。
bash -x scriptname.sh
您需要在数字和括号之间留一个空格。第 5 行应为
if [ $e -lt 30 ] && [ $e -gt 20 ]
[
您需要在and周围留一些空白]
:
if [ $e -lt 30 ] && [ $e -gt 20 ]
由于[
可以是程序*,因此您必须像传递命令行参数一样对待它。
* 我说可以,因为它可能会被某些 shell 内化