Tcsh shell 脚本“语法错误,文件意外结束”对于 if 语句

发布于 2024-12-17 09:06:45 字数 232 浏览 0 评论 0原文

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

#!/bin/bash

set mystring=0

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

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

I saw a similar problem in bash but couldn't solve it for my case.
I'm running a simple script:

#!/bin/bash

set mystring=0

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

my output is "line 12: syntax error: unexpected end of file". Can you help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏天碎花小短裙 2024-12-24 09:06:45

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

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

请注意,尽管逻辑看起来都是正确的,但 bash 的大部分语法都稍微不正确。您还应该确定“mystring”是整数还是字符串类型 - 这里我假设您需要字符串,并相应地修改了示例。

Here's a working bash version (rather than tcsh), given the first line in your example:

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

Note that much of the syntax was slightly incorrect for bash, even though the logic all looked correct. You should also determine if "mystring" is going to be an integer or a string type - here I made the assumption that you're expecting strings, and modified the example accordingly.

南风几经秋 2024-12-24 09:06:45

如果您使用 tcsh 那么您的 if 语法是错误的。 即使更改此设置后,按如下方式使用

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

也可能会遇到问题。它可以通过获取脚本来解决,而不是仅仅在 shell 中输入其名称。 IE,

$source script.sh
instead of
$script.sh

if you are using tcsh then your if syntax is wrong. Use as below

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

you might face the issue even after changing this. it can be resolved by sourcing your script instead of just typing its name in the shell. i.e.,

$source script.sh
instead of
$script.sh
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文