我需要遍历一系列不同的场景(变量scen),但是不知道如何在tcsh shell脚本中使用if语句。遇到错误"if: Expression Syntax“谁能告诉我哪里错了吗?下面是简化的代码!谢谢!
#!/bin/tcsh -f
#
set val = 0
foreach scen ( a b )
echo $scen
if ($scen==a) then
echo $scen
else
echo $val
endif
end发布于 2013-11-06 05:30:03
问题的解决方案
显然,您需要在相等比较==周围添加空格。这是可行的:
#!/bin/tcsh -f
#
set val = 0
foreach scen ( a b )
echo $scen
if ($scen == a) then
echo $scen
else
echo $val
endif
end制作:
a
a
b
0未经请求的建议
此外,除非您必须在这里使用tcsh,否则我建议使用更好的shell,如bash或zsh。以下是一些反对csh和tcsh的论点:
为了便于比较,下面是bash (和zsh)中的代码:
#!/bin/bash
# No space around equal sign in assignment!
val=0
for scen in a b; do
echo $scen
if [[ $scen == a ]]; then
echo $scen
else
echo $val
fi
done这里没有什么重要的区别,但请参阅上面的文章,了解csh是不好的选择的例子。
https://stackoverflow.com/questions/19799021
复制相似问题