if语句的Tcsh shell脚本“语法错误意外的文件结尾”

时间:2011-11-21 13:40:45

标签: shell tcsh

我在bash中看到了类似的问题,但是我的情况无法解决。 我正在运行一个简单的脚本:

#!/bin/bash

set mystring=0

if ( "$mystring" == "0" )    
  echo "true"     
elseif    
  echo "wrong"    
endif

我的输出是“第12行:语法错误:意外的文件结束”。你能帮我吗?

2 个答案:

答案 0 :(得分:2)

这是一个工作的bash版本(而不是tcsh),给出了示例中的第一行:

#!/bin/bash
mystring="0"
if [ "$mystring" -eq "0" ]; then
  echo "true"
else
  echo "wrong"
fi

请注意,对于bash来说,大部分语法都略有不正确,即使逻辑看起来都是正确的。你还应该确定“mystring”是整数还是字符串类型 - 这里我假设你期待字符串,并相应地修改了这个例子。

答案 1 :(得分:1)

如果您使用的是tcsh,则if语法错误。使用如下

if ( "$mystring" == "0" ) then
commands
else
commands
endif

即使更改了此内容,您也可能会遇到此问题。它可以通过获取脚本来解决,而不是只在shell中输入其名称。即,

$source script.sh
instead of
$script.sh