无法使 if 语句起作用

Cannot get if statement to work

无法弄清楚如何让 csh if 语句使用 expect 工作。

这行代码有效

if(4 > 3) echo "4 is greater than 3."

$ 4 is greater than 3.

这行代码不起作用

if (4 > 3) $myvar = 5

0: Command not found (i.e. myvar = 0)

这个也没有

if (4 > 3) then $myvar = 5

IF: Improper then

我做错了什么?我最好需要将所有这些都放在一行中,或者以某种方式将其放入 expect 脚本的 send 命令中。如果我不能在一行中得到它,我是否使用 \ 个字符?

您似乎混淆了 csh 语法和 Bourne shell 语法。

您使用 set name = value 分配变量。 $name = value 不起作用(实际上,这在 Bourne shell 中也不起作用,它是 name=value)。

对于多行 if,您只需要 then。将其保留为单行 ifs.

综合起来:

if (4 > 3) set myvar = 5

或:

if (4 > 3) then
    set myvar = 5
endif