2017-04-23 164 views
0

不能弄清楚如何得到csh如果語句工作使用expect。我幾乎堅持使用csh,所以裸露在我身邊。不能得到如果語句工作

這行代碼工作

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

我在做什麼錯?我最好需要在一行或者某個方面將所有這些寫入腳本的send命令中。如果我無法在一行上得到它,我會使用\個字符嗎?

+0

你的問題還不清楚。請說明每個示例行是哪種語言。在IF語句中,有時你會寫「然後」,有時候不會。 「$ myvar」在不同的語言中有不同的含義。你使用了太多標籤 - 我們可以談論一種語言,而不是shell csh tcl expect? – linuxfan

+0

@linuxfan我猜測問題是關於使用'expect'來自動化使用'csh'的遠程系統。這會使標籤混色變得有意義。它可能全部嵌入在bash腳本中以獲得額外的「樂趣」。答案將涉及獲取報價權,我敢打賭... –

回答

1

您似乎將csh語法與Bourne shell語法混淆。

您可以使用set name = value指定變量。 $name = value不起作用(實際上,這在Bourne shell中也不起作用,它在name=value處)。

您只需要then多行if s。將其留作單線if s。

全部放在一起:

if (4 > 3) set myvar = 5 

或:

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