几年前,当我们学习Bash脚本时,我们的老师告诉我们,我们要做的第一件事是过滤给定参数的“类型”,并在它们与预期不同的情况下抛出错误。
(例如,如果我们的脚本使用2个参数来求和,那么我们应该首先检查它们是否确实是数字)
他告诉我们使用的方法是sed
命令。
在上面的示例中,我们将从参数中获取与数字不同的所有字符,如果有,我们将其视为非数字值,并抛出错误。
由于这种方法对我来说非常初级,所以我想问一下:
有没有达到此目的的优雅方法?
构建脚本时实际上完成了此过程吗?
答案 0 :(得分:2)
sed
会显得乏味。
case $1 in *[!0-9]*) echo "$0: not a number: $1" >&2; exit 127;; esac
(如果您想允许使用负数或非整数,则显然应采用全局模式。)
shell本身根本没有任何类型-一切都是字符串。