Tcsh shell脚本中,if语句出现“语法错误:意外的文件结尾”

3
我可以帮您进行翻译。以下是您需要翻译的内容:

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

#!/bin/bash

set mystring=0

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

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


你得到解决方案了吗? - MoonKnight
2个回答

2
以下是一个可行的bash版本(而不是tcsh),根据您示例中的第一行代码:
```bash 这是一个可行的bash版本(而不是tcsh),根据您示例中的第一行代码: ```
#!/bin/bash
mystring="0"
if [ "$mystring" -eq "0" ]; then
  echo "true"
else
  echo "wrong"
fi

请注意,尽管所有的逻辑看起来都是正确的,但大部分语法在bash中都有些不正确。您还应确定“mystring”将是一个整数还是一个字符串类型 - 在这里,我做出了您期望字符串的假设,并相应地修改了示例。

同意,混合使用bash和tcsh。OP,你想要哪个?你的标题说tcsh。另外,原始示例代码中的任何elseif(elif)变体都需要测试某些内容,例如elif [[ -f $ {fileToProcess}]] ; then ... - shellter

1
如果您正在使用tcsh,则您的if语法是错误的。请使用以下语法
if ( "$mystring" == "0" ) then
commands
else
commands
endif

你即使更改了这个,仍可能会遇到问题。可以通过获取脚本的来源来解决,而不仅仅是在shell中键入其名称。例如,
$source script.sh
instead of
$script.sh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接