如何验证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破解一些东西,但这看起来有些愚蠢。
答案 0 :(得分:2)
Tcsh不做浮动。您可以使用bc
或awk
:
#!/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