我刚刚开始学习UNIX,我无法弄清楚这里的问题,你能指出错误吗
age=30
if [[ $age -lt 18 ]]
then
echo "not eligible"
elif [[ $age -gt 18 && $age -lt 60 ]]
echo "eligible"
else
echo "stay home"
fi
exit
答案1
then
您的脚本有几个问题,但最紧迫的一个是第二次测试后缺乏。
您还对 进行了不必要的测试$age -gt 18
,这另外引入了逻辑错误。您已经知道$age
此时小于 18,并且您不小心遗漏了$age
恰好为 18 的情况。最好$age -gt 18
完全删除该测试。
该脚本不需要exit
在末尾显式调用,但应该#!
在顶部有一个 -line 指向适当的 shell 解释器(可能bash
)。
你可能会发现https://www.shellcheck.net/一个有用的网站,用于查找脚本中最基本的错误。
#!/bin/bash
age=30
if [[ $age -lt 18 ]]; then
echo 'not eligible'
elif [[ $age -lt 60 ]]; then
echo 'eligible'
else
echo 'stay home'
fi