在Bash脚本中过滤类型错误的正确方法是什么?

时间:2019-04-03 07:22:31

标签: linux bash shell unix

几年前,当我们学习Bash脚本时,我们的老师告诉我们,我们要做的第一件事是过滤给定参数的“类型”,并在它们与预期不同的情况下抛出错误。

(例如,如果我们的脚本使用2个参数来求和,那么我们应该首先检查它们是否确实是数字)

他告诉我们使用的方法是sed命令。

在上面的示例中,我们将从参数中获取与数字不同的所有字符,如果有,我们将其视为非数字值,并抛出错误。

由于这种方法对我来说非常初级,所以我想问一下:

有没有达到此目的的优雅方法?

构建脚本时实际上完成了此过程吗?

1 个答案:

答案 0 :(得分:2)

当外壳程序内置此功能时,

sed会显得乏味。

case $1 in *[!0-9]*) echo "$0: not a number: $1" >&2; exit 127;; esac

(如果您想允许使用负数或非整数,则显然应采用全局模式。)

shell本身根本没有任何类型-一切都是字符串。