如何在TCSH脚本中验证数字输入参数?

时间:2011-03-04 15:20:24

标签: shell tcsh

如何验证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或watever破解一些东西,但这看起来有些愚蠢。

1 个答案:

答案 0 :(得分: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