echo $a
18.9142
echo $b
18.9593
我想做的是如果 a 小于 b 然后回显“是”
请说明何时使用 "" , () , `` , {} , bc -l 在 if-else 语句中。
echo $a
18.9142
echo $b
18.9593
我尝试过的:
1.if ( "$a" < "$b") then
if: Badly formed number.
2.if (` "$a" < "$b" `) then
18.9142: Command not found.
if? echo "YES"
if? endif
3.if [` "$a" < "$b" `] then
18.9142: Command not found.
if: Expression Syntax.
4.if ["$a" < "$b"] then
18.9593]: No such file or directory.
5.if ["$a" < "$b"]; then
18.9593]: No such file or directory.
6.if (`echo "$a" < "$b" | bc -l`) then
if: Badly formed number.
7.if ( `echo "$a < $b" | bc -l` ) then
8.if [`echo "$a < $b" | bc -l`] then
[`echo "$a < $b" | bc -l`]: No match.
9.if [`echo "$a < $b" | bc -l`]; then
[`echo "$a < $b" | bc -l`]: No match.
then: Command not found.
10.if [`echo "$a < $b" | bc -l`];
[`echo "$a < $b" | bc -l`]: No match.
这些似乎都不起作用任何人都可以帮忙。
我想做的是如果 a 小于 b 然后回显“是” 请分享 tcsh 和 bash 中的方法。
请说明何时使用 "" , () , `` , {} , bc -l 在 if else 语句中。
这真的是评论,但我需要空间和格式的答案
#!/bin/csh -vx
set a=18.7
set b=19.3
if ( `echo "$a < $b" | bc -l` == 0 ) then
echo OK
else
echo no
endif
if ( `echo "$a < $b" | bc -l` ) then
echo OK
else
echo no
endif
当它在文件中时,无论有没有
== 0
部分,它都能正常工作。请务必使用 chmod +x myTest.csh
将文件标记为可执行文件(当然,为 myTest.csh
插入您的脚本名称)
另请注意,csh 支持简化测试
if ( `echo "$a < $b" | bc -l` == 0 ) echo no
关闭后允许一个命令
)
.
现在没有时间进一步研究。也许这会帮助你前进,但真正的建议是放弃 CSH!搜索 csh-why-not.
IHTH.