【发布时间】:2018-10-31 14:57:57
【问题描述】:
我一直在试图弄清楚这一点,我知道这可能非常简单,所以希望一双新的眼睛能提供帮助。我有一个我正在编写的 Bourne shell (sh) 脚本,它需要一个整数列表作为输入(以及从 1 个整数开始的数量,理想情况下我想同时采用正整数和负整数)。如果有人输入整数以外的内容,我正在尝试对这种情况进行错误检查。他们可以输入“1 2 3 4 5 a”并给出错误,因为 a 不是 int。
我有一个错误检查,没有输入有效,我有代码可以对整数列表本身进行处理,但即使给出了字符串,它仍然会到达我的最终代码块。
我目前有一个 for 循环来遍历整数列表中的每个项目,然后如果所讨论的参数不是 int,则有一个 if 循环来给出错误消息。我尝试了几个不同的版本,但这是最新的,所以我把它放在下面。
for i in $@; do
if [ $i -ge 0 ] 2>/dev/null; then
echo "Invalid input: integers only."
exit 1
fi
done
【问题讨论】:
标签: shell unix integer arguments sh