如何在 cshell 中比较 2 个变量

问题描述 投票:0回答:1
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 语句中。

linux csh tcsh
1个回答
0
投票

这真的是评论,但我需要空间和格式的答案

#!/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.

© www.soinside.com 2019 - 2024. All rights reserved.