2

如何验证 tcsh 脚本的数字输入参数?

#!/usr/bin/tcsh

if ( $1 < 0.0 ) then
    echo "ERROR: first input argument is less than zero."
    exit 1
endif

上面的代码片段显示了我正在尝试做但不起作用的事情。我已经尝试了许多基于使用 expr 命令或 @ 运算符的组合,但无济于事。手册页和网络还没有出现。无论我尝试什么,我都会不断收到诸如“数字格式错误”或“设置:变量名必须以字母开头”之类的错误。

有没有一种 tcsh-ish 的方式来做到这一点?我当然可以使用 awk 或 waterver 破解一些东西,但这似乎有点愚蠢。

4

1 回答 1

2

Tcsh 不做浮点数。您可以使用bcawk

#!/usr/bin/tcsh
if ( `echo "$1 < 0.0" | bc` == 1 ) then
    echo "ERROR: first input argument is less than zero."
    exit 1
endif

或者

#!/usr/bin/tcsh
if ( `awk -v "val=$1" 'BEGIN {print val < 0.0}'` == 1 ) then
    echo "ERROR: first input argument is less than zero."
    exit 1
endif
于 2011-03-04T16:15:50.050 回答