2015-06-23 42 views
0
#! /bin/sh 
    set i=1 
    set j=1 
    while (($i <= 43)) 
    do 
    suwind <looptest_fldr109.su> test$j.su key=tracl min=$i max=$i+5 
    susort < test$j.su >Xtest$j.su -tracr 
    i=`expr $i+6` 
    @ j++ 
    done 

嗨;我試圖在csh中運行一個while循環,並且不斷收到錯誤:語法錯誤:期望的操作數(錯誤標記爲「<= 43」)while循環

語法錯誤:期望的操作數(錯誤標記爲「< = 43」)。

我對shell並不熟悉,我認爲這可能是我的問題所在。 謝謝!

+0

「'#/斌/ sh' 「」在csh中運行「真的嗎? –

+0

你是用'/ bin/sh'還是'csh' /'tcsh'運行? –

+0

Um ...你的shebang行說'/ bin/sh',你聲稱在'csh'中運行一個循環,但是你正在使用'bash'特定的'((...))'算術上下文嗎?挑一個外殼,堅持下去...... – twalberg

回答

1

運行這個命令來查看你用什麼shell:

ps -p $$ 

然後把正確的外殼拳頭線#! /bin/shsh地方。

我有bash和你的程序工作得很好,與第一行更改爲:

#!/bin/bash 

,如果你有C shell中則這樣寫:!

#! /bin/csh 
    set i=1 
    set j=1 
    while ($i <= 43) 
    do 
     suwind <looptest_fldr109.su> test$j.su key=tracl min=$i max=$i+5 
     susort < test$j.su >Xtest$j.su -tracr 
     i=`expr $i+6` 
     @ j++ 
    done 
+0

非常感謝!當我嘗試'ps -p $$'或甚至'echo $ SHELL'時,它將csh作爲我的shell返回,並且當我將第一行更改爲/ csh時,我的錯誤更改爲:'=:沒有這樣的文件或目錄'。我確信我的輸入文件存在,並且與程序在同一個目錄中!你有什麼想法嗎?再次感謝。 – grix

+0

在這種情況下寫下如下的while循環: while($ j <= 5),即單括號 – Chris

+0

恐怕同樣的錯誤仍然存​​在,即使使用單括號。男孩,哦,男孩。 – grix

相關問題