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



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

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

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

在上面的例子中,我们将从参数中获取与数字不同的所有字符,如果有的话,我们会将其视为非数值,从而引发错误。

由于这种方法对我来说看起来很简陋,我想问一下:

有什么优雅的方法可以实现这一点吗?

这个过程在构建脚本时是否实际完成?

当 shell 内置此功能时,sed是乏味的矫枉过正。

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

(如果你想允许负数或非整数,显然要调整 glob 模式。

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

相关内容

最新更新