Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何验证TCSH脚本中的数字输入参数?_Shell_Tcsh - Fatal编程技术网

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

Shell 如何验证TCSH脚本中的数字输入参数?,shell,tcsh,Shell,Tcsh,如何验证tcsh脚本的数字输入参数 #!/usr/bin/tcsh if ( $1 < 0.0 ) then echo "ERROR: first input argument is less than zero." exit 1 endif #/usr/bin/tcsh 如果($1

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

#!/usr/bin/tcsh

if ( $1 < 0.0 ) then
    echo "ERROR: first input argument is less than zero."
    exit 1
endif
#/usr/bin/tcsh
如果($1<0.0),则
echo“错误:第一个输入参数小于零。”
出口1
恩迪夫
上面的代码片段显示了我正在尝试做但不起作用的事情。我尝试了许多基于expr命令或@operator的组合,但都没有成功。手册页和网络还没有显示任何内容。不管我怎么做,我总是会遇到错误,比如“格式错误的数字”或“set:变量名必须以字母开头”


有什么办法可以做到这一点吗?我当然可以用awk或watever来破解一些东西,但这似乎有点傻。

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
如果(`echo“$1<0.0”| bc`==1),则
echo“错误:第一个输入参数小于零。”
出口1
恩迪夫

#/usr/bin/tcsh
如果(`awk-v“val=$1”`开始{print val<0.0}`==1),那么
echo“错误:第一个输入参数小于零。”
出口1
恩迪夫

谢谢。这很有效。我发现了一些与你的awk系列相似的东西,但我真的希望有一种“更好”的方式。我开始怀疑tcsh不能处理浮动,你似乎已经证实了这一点。真倒霉我的相关行是“如果(
echo$1 | awk”{打印$1@Dr.PersonPersonII:说到。我很好奇为什么你不喜欢Bash。顺便说一句,Bash也不做浮点运算。zsh和ksh93都做。我发现Bash语法非常不直观,很难记住。如果我一个月或更长时间都没有写Bash脚本,这是典型的,我必须用谷歌来找出syntax代表我想做的每一件事。另一方面,Csh更易于实际使用。我知道Csh的一些局限性,但我仍然觉得它更易于使用。@Dr.PersonPersonII:zsh的语法非常类似于Bash、ksh、Bourne shell等,因为它们都是相关的。然而,从那时起,你会发现zsh更具挑战性它不仅包括厨房的水槽,还有浴室的水槽,门卫的水槽,还有。。。
#!/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